JavaScript 알고리즘

등수출력 프로그램 작성하기.

데일리코딩 2022. 4. 8. 12:51

문제 설명 : 

시험을 본 학생들의 점수가 입력이 되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요

 

입력 : 같은 점수로 입력될 경우에는 높은 등수로 동일 처리된다. 즉 가장 높은 점수가 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