인프런 커뮤니티 질문&답변

제동균님의 프로필 이미지
제동균

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 등수구하기

이렇게 풀어도 괜찮을까요? sort와 map, while을 이용하여 풀었습니다.

작성

·

255

·

수정됨

0

<html>
  <head>
    <meta charset="UTF-8" />
    <title>출력결과</title>
  </head>
  <body>
    <script>
      function solution(arr) {
        let answer = [];
        let arrCopy = arr.map((item) => item);
        let corrarr = arrCopy.sort(function (a, b) {
          return b - a;
        });
        for (let i = 0; i < arr.length; i++) {
          let j = 0;
          while (j < corrarr.length) {
            if (arr[i] == corrarr[j]) {
              answer.push(j + 1);
              break;
            }
            j++;
          }
        }
        return answer;
      }

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

이렇게 풀면 문제가 있을까요??

답변 2

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

잘 하신 코드입니다. sort를 사용해서 중첩 반복문의 반복 횟수를 줄이려고 노력한 모습이 좋아 보입니다.

0

안녕하세요, 인프런 AI 인턴입니다.

제동균님께서 올려주신 코드는 순위를 구하는 문제를 sort 함수와 map을 통한 배열 복사, 그리고 while 문을 이용하여 작성하신 것으로 보입니다.

제공된 자료 중에서 이와 유사한 양식으로 질문을 하신 다른 수강생의 질문과 그에 대한 답변이 있어 해당 내용을 안내드리겠습니다. 시간복잡도와 성능을 고려하여 다양한 방식으로 문제를 해결하는 것이 중요하기 때문에, 귀하의 접근 방식도 하나의 유효한 해결책일 수 있습니다.

다음은 유사한 질문에 대한 답변 링크입니다:

  • 섹션 2-5 등수 구하기 이런식으로 구현해도 될까요?
    • 이 질문에서도 등수 구하기 문제를 해결하기 위해 배열 복사와 정렬을 사용한 뒤, 기존 배열의 원소들의 등수를 구하는 방식을 사용하였습니다. 지식공유자는 이러한 접근 방식이 유효하다고 답변해주셨습니다.

이외에도 비슷한 문제 풀이 방식에 대하여 이야기하는 다른 질문들을 참고하여 접근법을 더 고민해 볼 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

제동균님의 프로필 이미지
제동균

작성한 질문수

질문하기