프로그래머스 LEVEL 2(테이블 해시 함수)
-
사용 언어 : javascript
-
해결 날짜 : 2022-12-26
-
해결 방법 :
- 문제의 조건에 맞게 정렬
- 조건 : 테이블의 튜플을 col번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 만약 그 값이 동일하면 기본키인 첫 번째 컬럼의 값을 기준으로 내림차순 정렬합니다.
- 정렬 후 row_begin부터 row_end까지 i 번째 행의 튜플에 대해 각 컬럼의 값을 i 로 나눈 나머지들의 합을 XOR하여 answer update
- 문제의 조건에 맞게 정렬
-
회고 :
- x
-
코드
function solution(data, col, row_begin, row_end) { let answer = 0; const sortedData = data.sort((a, b) => { if (a[col - 1] === b[col - 1]) return b[0] - a[0]; return a[col - 1] - b[col - 1]; }); for (let i = row_begin; i <= row_end; i++) { answer ^= sortedData[i - 1].reduce((acc, cur) => acc + (cur % i), 0); } return answer; }
-
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges