Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[프로그래머스] Lv.2 테이블 해시 함수 [Python, 파이썬] 본문
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/147354
- 🔑 정렬, 비트연산 XOR
- 먼저 이 문제에서 컬럼이나 튜플의 순서는 0이 아닌 1부터 시작한다.
- 2단계 정렬 : col 번째 값을 기준으로 오름차순, col 번째 값 동일하면 기본키 첫 번째 값 기준 내림차순 정렬
- 음수 기준으로 정렬하면 내림차순 정렬 가능 → -x[0]
- 3단계 나머지들의 합 : 정렬된 리스트 순회하면서 row_begin ~ row_end까지 튜플에 대해 나머지 합 계산 후 리스트에 저장
- 4단계 저장된 나머지 합들 XOR 연산 : 나머지 합 저장된 리스트 순회하면서 모두 XOR 연산
- answer ^= S[i]로 answer에 XOR 연산된 값 저장
def solution(data, col, row_begin, row_end):
# 2단계
data.sort(key=lambda x : (x[col-1], -x[0])) # col 번째 오름차순, 같으면 기본키 내림차순
# 3단계
S = []
for i in range(row_begin-1, row_end):
s = 0
for j in data[i]:
s += j % (i+1)
S.append(s)
# 4단계
answer = S[0]
for i in range(1, len(S)):
answer ^= S[i]
return answer
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 디펜스 게임 [Python, 파이썬] (0) | 2024.07.25 |
---|---|
[프로그래머스] Lv.2 가장 큰 정사각형 찾기 [Python, 파이썬] (0) | 2024.07.18 |
[프로그래머스] Lv.2 미로 탈출 [Python, 파이썬] (0) | 2024.05.23 |
[프로그래머스] Lv.3 섬 연결하기 [Python, 파이썬] (0) | 2024.04.19 |
[프로그래머스] Lv.2 무인도 여행 [Python, 파이썬] (0) | 2024.03.15 |
Comments