본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 테이블 해시 함수(Java)

by hxxyeoniii 2024. 11. 7.

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/147354

 

프로그래머스

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

programmers.co.kr


문제 풀이

* 자바에서 XOR 연산 : ^ 사용

 

import java.util.*;

class Solution {
    public int solution(int[][] data, int col, int row_begin, int row_end) {
        int answer = 0;
        
        // col번째 컬럼 기준 오름차순, 동일할 경우 첫번째 컬럼 기준 내림차순
        Arrays.sort(data, (o1, o2) -> {
            if(o1[col-1] == o2[col-1]) {
                return Integer.compare(o2[0], o1[0]);
            } else {
                return o1[col-1] - o2[col-1];
            }
        });
        
        int cnt = 0;
        for(int i=row_begin-1; i<row_end; i++) {
            int sum = 0;
            for(int j=0; j<data[0].length; j++) {
                sum += data[i][j] % (i+1);
            }
            answer ^= sum;
        }
        return answer;
    }
}