programmers_테이블 해시 함수_java

2023. 5. 17. 18:32Algorithm/Programmers

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;
    }
}

'Algorithm > Programmers' 카테고리의 다른 글

programmers_N-Queen_java  (0) 2023.05.19
programmers_시소 짝꿍_java  (0) 2023.05.18
programmers_후보키_java  (0) 2023.05.17
programmers_혼자 놀기의 달인_java  (0) 2023.05.15
programmers_숫자 카드 나누기_java  (0) 2023.05.15