Algorithm/Programmers
programmers_테이블 해시 함수_java
owoowo
2023. 5. 17. 18:32
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/147354
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public int solution(int[][] data, int col, int row_begin, int row_end) {
int answer = 0;
int colLength = data[0].length;
int rowLength = data.length;
int[] S_i = new int[rowLength+1];
// col값 기준 오름차순 정렬 -> 동일 값 : 0번 컬럼 기준 내림차순
Arrays.sort(data, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
int res = o1[col-1] - o2[col-1];
if (res == 0){
return o2[0] - o1[0];
}
return res;
}
});
// S_i 구하기
for (int i = row_begin; i<=row_end; i++){
S_i[i] = 0;
for (int j = 0; j<colLength; j++){
S_i[i] += data[i-1][j] % i;
}
}
// S_i XOR 연산
answer = S_i[row_begin];
for (int i = row_begin + 1; i<=row_end; i++){
answer = answer ^ S_i[i];
}
return answer;
}
}