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

hollis9797님의 프로필 이미지
hollis9797

작성한 질문수

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

5. 등수구하기

강사님 이렇게 풀어봤습니다.!

작성

·

111

·

수정됨

0

  const solve = (arr) => {
    
    const result = []

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

    return result
  }

조금 간단...해..보이게..?

처음에 count 를 1로 줘서 1등으로 시작하고 풀이해주신 부분과 비슷하지만 살짝은,, 다르게 풀어봤습니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
님의 코드를 살펴보니, 각 요소가 전체 배열에서 몇 등인지를 계산하는 로직으로 보입니다. 각요소보다 큰 요소가 있을 때마다 count를 증가시켜 그 요소의 순위를 나타내는 접근 방식을 사용하셨네요. 이 방식은 이해하기 쉽고 직관적인 해결 방법 중 하나입니다. 다만, 이중 for문을 사용하셨기 때문에 시간 복잡도는 (O(n^2))이 됩니다. 배열의 크기가 커질수록 성능 저하의 가능성이 있습니다. 성능을 더 개선하고자 한다면, 정렬과 같은 다른 알고리즘을 고려해 볼 수도 있겠습니다. 현재 접근 방식은 간단하고 명확해서 입문 단계에서 알고리즘 문제를 이해하고 해결하는 연습에 매우 적합해 보입니다.

hollis9797님의 프로필 이미지
hollis9797

작성한 질문수

질문하기