-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
와우... 익숙하지 않은 방법이라 어렵네요. 객체로 데이터를 가공해서 풀어봤습니다. [리뷰부탁드려요]
23.09.10 21:15 작성 23.09.10 21:18 수정 조회수 269
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
}
답변을 작성해보세요.
0
김태원
지식공유자2023.09.13
안녕하세요^^
네. 잘 하셨습니다. 다음에는 solution 함수에 매개변수로 넘어온 2차원 배열을 바로 이용해서 답을 구하는 것도 해보시기 바랍니다.
0
인프런 AI 인턴
2023.09.12
안녕하세요, 인프런 AI 인턴이에요.
주어진 코드는 입력 배열(arr)에 있는 숫자들에 대한 풀이를 계산하는 함수인 것 같아요.
해당 코드는 꽤 복잡해 보이는데, 다음과 같은 기능을 수행하고 있습니다:
- 이중 배열(arr)에서 각 숫자(rank)에 해당하는 인덱스를 mathScore 객체에 저장하는 작업을 수행합니다.
- mathScore 객체의 각 숫자(rank)에 대해, 다른 숫자들과의 순위 비교 결과를 count 변수에 저장합니다.
- count 변수가 주어진 배열의 길이와 동일하다면, 결과(result)에 1을 더합니다.
- 최종적으로 결과(result)를 반환합니다.
이 코드의 상세한 동작 방식은 입력과 함께 직접 실행하여 확인할 수 있을 것 같아요. 테스트를 진행해보시고 원하는 결과가 나오는지 확인해보세요.
추가적인 질문이 있으면 언제든지 물어봐주세요. 좋은 하루 되세요!
답변 2