728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
정말 문제에서 말하는데로 풀어보았습니다.
- col번째 컬럼의 값을 기준으로 오름차순 정렬하고(같을 경우 첫번째 컬럼을 기준으로 내림차순 정렬)
- row_begin번째 행부터 row_end번째 행까지의 각 행의 컬럼 값들을 행의 i로 나눈 나머지의 합을 구하여 그 합들을 비트 연산 한 값을 구하였습니다.
import java.util.*;
class Solution {
public int solution(int[][] data, int col, int row_begin, int row_end) {
int[] sum = new int[data.length];
int answer = 0;
Arrays.sort(data, new Comparator<int[]>(){
@Override
public int compare(int[] o1, int[] o2){
if (o1[col-1] != o2[col-1])
return o1[col-1] - o2[col-1]; //오름차순
else
return o2[0] - o1[0]; //내림차순
}
});
for (int i = row_begin-1; i < row_end; i++) {
for (int j = 0; j < data[0].length; j++){
sum[i]+=(data[i][j]%(i+1));
}
answer ^= sum[i];
}
return answer;
}
}
'문제풀기' 카테고리의 다른 글
크기가 작은 부분문자열 (0) | 2024.04.18 |
---|---|
가장 가까운 같은 글자 (0) | 2022.12.29 |
프로그래머스 기지국 설치 (0) | 2022.04.24 |
프로그래머스 크레인 인형뽑기 게임 (0) | 2022.04.22 |
백준 문제 10699번 토마토 (0) | 2022.02.23 |