본문 바로가기
자료구조 & 알고리즘/문제 풀이 (프로그래머스)

테이블 해시 함수 (정렬, XOR)

by 정구정구 2026. 7. 23.

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/147354

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 풀이

1. 조건에 맞게 정렬

2. S_i 누적 계산

3. XOR 누적 계산

순서대로 진행하면 된다.

 

 

작성한 코드

import java.util.Arrays;

class Solution {
    public int solution(int[][] data, int col, int row_begin, int row_end) {
         
        // column과 배열 인덱스 조율 
        int colIdx = col - 1;
        
        Arrays.sort(data, (a,b) -> {
            if (a[colIdx] != b[colIdx]) {
                // 다르면 오름차순
                return a[colIdx] - b[colIdx];
            }
            // 같으면 첫번째 column으로 내림차순
            return b[0] - a[0];
        });

        int answer = 0;

        for (int i = row_begin; i <= row_end; i++) {
            
            // 배열 인덱스 조율
            int[] row = data[i-1];
            
            int sum = 0;

            for (int value : row) {
                // S_i 누적 합산
                sum += value % i;
            }

            // XOR 계산
            answer ^= sum;
        }


        return answer;
    }
}