Home 프로그래머스 테이블해쉬함수 Lv2
Post
Cancel

프로그래머스 테이블해쉬함수 Lv2


Comparator클래스를 사용하여 정렬에 조건을 추가 정렬을 하였다.
이후 로직은 이중반복문으로 간단하게 구현했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.Arrays;
import java.util.Comparator;

public class 테이블해쉬함수 {

	public static void main(String[] args) {
		
		int[][] data = new int[][];
		int col = 2;
		int row_begin = 2;
		int row_end = 3;
		solution(data, col, row_begin, row_end);
		
	}
	static  int solution(int[][] data, int col, int row_begin, int row_end) {
        int answer = 0;
        
        Arrays.sort(data, new Comparator<int[]>() {
			@Override
			public int compare(int[] o1, int[] o2) {
				if(o1[col-1]==o2[col-1]) {//col번째 행이 같으면 첫번째행 내림차순
					return o2[0]-o1[0];
				}
				else {
					return o1[col-1]-o2[col-1];//col번째 행이 같지 않으면 col번째행 오름차순
				}
			}
		});
        
        for(int i=row_begin-1; i<row_end; i++) {
        	int num = 0;
        	for(int j=0; j<data[0].length; j++) {
        		num+=data[i][j]%(i+1);//행으로 나누어 나머지 누적
        	}
        	
        	answer^=num;//비트연산자로 num만큼 이동
        }
        
        return answer;
    }
}
This post is licensed under CC BY 4.0 by the author.