문제
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
(1) 조건에 맞게 data를 정렬한다.
(2) 정렬된 data에서 각 튜플의 요소를 인덱스 i + 1로 나눈 나머지를 구하고, 그 나머지들을 모두 합산한다.
(3) XOR 연산자 ^을 사용하여 answer를 구한다.
function solution(data, col, row_begin, row_end) {
let answer = 0;
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 - 1; i <= row_end - 1; i++) {
const rowSum = data[i].reduce((sum, value) => sum += value % (i + 1), 0);
answer ^= rowSum;
};
return answer;
}
결론
단순 구현 문제이다.
다중 조건 정렬과 배열 요소의 합 구하기, 비트 단위 XOR 할당 연산자를 알면 쉽게 해결할 수 있다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 캐시 (JS) (0) | 2024.11.24 |
---|---|
[프로그래머스] 가장 많이 받은 선물 (JS) (0) | 2024.11.23 |
[프로그래머스] 숫자 카드 나누기 (JS) (2) | 2024.11.20 |
[프로그래머스] 과제 진행하기 (JS) (2) | 2024.11.16 |
[프로그래머스] 뉴스 클러스터링 (JS) (0) | 2024.11.03 |