Algorithm & Data Structures/Programers

Lv 2. 테이블 해시 함수

Geisha 2024. 9. 3. 12:52

 

역대급 쉬운 문제였다.

다만 XOR 연산자 및 비트연산자에 대한 이해가 없어 XOR 연산을 하라는 말을 알아듣지 못해 상당히 시간낭비를 하였다. 비트연산자에 대해서 공부 후 포스팅 하도록 하겠다.

 

import java.util.*;

class Solution {
    public int solution(int[][] data, int col, int row_begin, int row_end) {
        int answer = 0;
        
        List<int[]> list = new ArrayList<>();
        
        for(int i = 0 ; i < data.length ; i++){
            int[] arr = new int[data[i].length];

            for(int j = 0 ; j < data[0].length ; j ++)
                arr[j] = data[i][j];                

            list.add(arr);
        }
        
        Collections.sort(list,(o1,o2)->{
            if(o1[col-1]==o2[col-1])
                return o2[0]-o1[0];
            return o1[col-1]-o2[col-1];
        });
        for(int i = row_begin-1 ; i < row_end ; i++){
            int sum = 0 ;
            for(int a : list.get(i)){
                sum += a % (i+1);
            }
            answer = answer ^ sum;
        }
        return answer;
    }
}