문제 설명 :
시험을 본 학생들의 점수가 입력이 되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요
입력 : 같은 점수로 입력될 경우에는 높은 등수로 동일 처리된다. 즉 가장 높은 점수가 92점인데 3명만 존재한다면 1등이 3명이고 그다음 학생은 4등 처리가 된다.
출력 : 입력된 순서대로 등수를 출력한다.
입력예제 :
87, 89, 92, 100, 76
출력 예제 :
4, 3, 2, 1, 5
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(score){
let answer = [1,1,1,1,1];
for(let i =0; i<score.length; i++){
for(let j = 0; j<score.length; i++){
if(score[i] > score[j]) answer[i] ++;
}
}
return answer;
}
let score = [87,89,92,100,76];
console.log(solution(score));
//등수 출력하기
</script>
</body>
</html>
문제 접근방법 :
우선 입력받은 학생들의 점수를 배열로 가져온다면 score [0]으로 첫 번째 점수부터 접근할 수 있다.
그렇다면 score[0] 부터 score [4]까지 하나씩 비교하면서 더 큰 점수가 있다면 answer [] 배열로 선언한 등수를 늘려주면 순서대로 이 점수가 몇 등인지 알아낼 수 있다.
그렇다면 score[] 있는 점수를 하나씩 비교하는 방법은 이중 for문을 이용해서 첫 번째 i가 1번 돌 때 j의 모든 배열을 돌면서 비교해서 i(주인공, 비교대상)가 더 크다면 등수를 올려주면 될 것이다.
for i 열
87 | 89 | 92 | 100 | 76 |
score [0] score [1] score [2] score [3] score [4]
for j 열
87 | 89 | 92 | 100 | 76 |
score [0] score [1] score [2] score [3] score [4]
이중 포문을 이용한다면 i열 인덱스의 0번 한번 돌 때 j 열은 0부터 4번까지 돌아간다 이때 if문으로 비교를 if(score [i] > score [j]) answer [i] ++으로 등수 숫자를 올려준다면 순서대로 등수를 구할 수 있을 것입니다.
'JavaScript 알고리즘' 카테고리의 다른 글
자릿수의 합 구하기 (0) | 2022.04.08 |
---|