https://school.programmers.co.kr/learn/courses/30/lessons/147354
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
접근 방법
- data배열의 길이는 최대 2500, 각 data의 원소인 배열의 길이는 최대 500
- 따라서 시키는대로 구현하면 된다
- 연산에 사용되는 index와 실제 저장되는 index의 차이를 잘 생각하면된다
코드
import java.util.*;
class Solution {
public int solution(int[][] data, int col, int row_begin, int row_end) {
Arrays.sort(data, (o1, o2) -> {
if(o1[col-1] == o2[col-1]) return o2[0] - o1[0];
return o1[col-1] - o2[col-1];
});
row_end--; row_begin--;
int hash = getSum(data[row_begin], row_begin+1);
for(int i = row_begin+1 ; i <= row_end ; i++){
int sum = getSum(data[i], i+1);
hash ^= sum;
}
return hash;
}
int getSum(int[] data, int mod){
int sum = 0;
for(int i = 0 ; i < data.length ; i++) sum += data[i] % mod;
return sum;
}
}
'Algorithm' 카테고리의 다른 글
[프로그래머스] LV 2 거리두기 확인하기 (0) | 2024.11.04 |
---|---|
[프로그래머스] LV2 가장 큰 정사각형 찾기 (2) | 2024.11.04 |
[프로그래머스] LV 3 징검다리 건너기 (1) | 2024.11.01 |
[프로그래머스] LV 2 괄호변환 (0) | 2024.11.01 |
[프로그래머스] LV 3 보석 쇼핑 (3) | 2024.10.31 |