문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/147354
제한 사항
입출력 예
풀이
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public int solution(int[][] data, int col, int row_begin, int row_end) {
int answer = 0;
// 2
Arrays.sort(data,
Comparator.comparing((int[] arr) -> arr[col - 1])
.thenComparing((int[] arr1, int[] arr2) -> arr2[0] - arr1[0]));
// 3
int count = row_end - row_begin + 1;
int[] result = new int[count];
for (int i = row_begin - 1; i < row_end; i++)
for (int num : data[i])
result[i - row_begin + 1] += num % (i + 1);
// 4
for (int n : result) answer ^= n;
return answer;
}
}
후기
웬일로 정직한 문제... 그냥 문제에서 설명한 대로만 풀면 된다. 정렬만 두 번 하는데 두 번째 정렬만 조심하면 무난하게 풀 수 있다. 그리고 행 번호와 인덱스 번호는 1 차이 나므로 이거도 신경 써야 한다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
[프로그래머스][Java][Lv. 2] 거리두기 확인하기 (0) | 2024.08.17 |
---|---|
[프로그래머스][Java][Lv. 2] 행렬 테두리 회전하기 (0) | 2024.08.15 |
[프로그래머스][Java][Lv. 2] 전력망을 둘로 나누기 (0) | 2024.08.13 |
[프로그래머스][Java][Lv. 2] 혼자 놀기의 달인 (0) | 2024.08.11 |
[프로그래머스][Java][Lv. 2] 숫자 카드 나누기 (0) | 2024.08.10 |