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

Edwin Y. Park님의 프로필 이미지
Edwin Y. Park

작성한 질문수

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

3. 멘토링

와우... 익숙하지 않은 방법이라 어렵네요. 객체로 데이터를 가공해서 풀어봤습니다. [리뷰부탁드려요]

작성

·

334

·

수정됨

0

const solution = (arr, mathScore={}) => {
  let count = result = 0;
  arr.forEach((list) => {
    list.forEach((rank, idx) => {
      mathScore[rank] = mathScore[rank] ? [...mathScore[rank], idx] : [idx]
    });
  });

  for(let i=1;i<=arr[0].length; i++) {
    for(let j=1;j<=arr[0].length; j++) {
      count=0
      if(i !== j) {
        for(let k=0;k<arr.length; k++) {
          mathScore[i][k] > mathScore[j][k] && count++
        }
      }
      count === arr.length && result++
    }
  }
  return result
}

답변 2

0

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

안녕하세요^^

네. 잘 하셨습니다. 다음에는 solution 함수에 매개변수로 넘어온 2차원 배열을 바로 이용해서 답을 구하는 것도 해보시기 바랍니다.

0

안녕하세요, 인프런 AI 인턴이에요.

주어진 코드는 입력 배열(arr)에 있는 숫자들에 대한 풀이를 계산하는 함수인 것 같아요.

해당 코드는 꽤 복잡해 보이는데, 다음과 같은 기능을 수행하고 있습니다:

  1. 이중 배열(arr)에서 각 숫자(rank)에 해당하는 인덱스를 mathScore 객체에 저장하는 작업을 수행합니다.
  2. mathScore 객체의 각 숫자(rank)에 대해, 다른 숫자들과의 순위 비교 결과를 count 변수에 저장합니다.
  3. count 변수가 주어진 배열의 길이와 동일하다면, 결과(result)에 1을 더합니다.
  4. 최종적으로 결과(result)를 반환합니다.

이 코드의 상세한 동작 방식은 입력과 함께 직접 실행하여 확인할 수 있을 것 같아요. 테스트를 진행해보시고 원하는 결과가 나오는지 확인해보세요.

추가적인 질문이 있으면 언제든지 물어봐주세요. 좋은 하루 되세요!

Edwin Y. Park님의 프로필 이미지
Edwin Y. Park

작성한 질문수

질문하기