-
[Programmers] 테이블 해시 함수 / ⭕Algorithm/Programmers 2024. 10. 4. 23:07
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 제출 코드 (14분 32초 / 정렬, 구현)
import java.util.*; class Solution { public int solution(int[][] data, int col, int row_begin, int row_end) { int answer = 0; Arrays.sort(data, (o1, o2) -> { if(o1[col - 1] == o2[col - 1]) { return o2[0] - o1[0]; } return o1[col - 1] - o2[col - 1]; }); for(int i = row_begin - 1; i <= row_end - 1; i++) { int[] t = data[i]; int mod = 0; for(int j = 0; j < t.length; j++) { mod += t[j] % (i + 1); } answer ^= mod; } return answer; } }
2. 구현 로직
- data를 col번째 컬럼으로 오름차순 정렬하는데 동일한 값이 있다면 0번째 컬럼을 비교하여 내림차순 정렬
- row_begin에서 row_end까지 반복
- i번째 튜플을 가져온다
- 각 컬럼을 i로 나눈 나머지를 mod에 더한다
- answer와 mod를 XOR 연산하여 해시한다
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 점 찍기 / ❌ (0) 2024.10.05 [Programmers] 디펜스 게임 / ❌ (0) 2024.10.05 [Programmers] 연속 부분 수열 합의 개수 / ⭕ (0) 2024.10.03 [Programmers] 택배 배달과 수거하기 / ❌ (1) 2024.10.02 [Programmers] 귤 고르기 / ⭕ (0) 2024.07.24