5_hyun 2022. 8. 12. 13:58
반응형

해결법

이 문제는 우선 입력된 점수 길이 만큼의 1로 이루어진 배열을 만들어야한다. 그리고 이중 for문을 두고 첫번째 for문 i를 기준으로 비교하면서 두번째 for문 j를 비교한다. i번째 있는 점수가 j번째 있는 점수보다 작으면 등수를 올려야해서 처음 만들 배열에 i 번째 위치를 +1을 해준다.

 

강사님 코드

<html>
  <head>
    <meta charset="UTF-8" />
    <title>출력결과</title>
  </head>
  <body>
    <script>
      function solution(arr) {
        let n = arr.length;
        let answer = Array.from({ length: n }, () => 1);

        for (let i = 0; i < arr.length; i++) {
          for (let j = 0; j < arr.length; j++) {
            if (arr[i] < arr[j]) answer[i] += 1;
          }
        }

        return answer;
      }

      let arr = [87, 89, 92, 100, 76];
      console.log(solution(arr));
    </script>
  </body>
</html>

Array.from을 사용하면 1을 n개 만큼 가진 배열을 쉽게 만들 수 있다.

반응형