TIL
TIL (240902)
wnwlals13
2024. 9. 2. 15:37
> 테이블 해시 함수
https://school.programmers.co.kr/learn/courses/30/lessons/147354
문제 풀이 과정
- 조건대로 정렬
- i번째 행의 튜플에 대해 컬럼값을 i로 나눈 나머지들의 합을 구한다.
- 나머지들의 합 배열에 대해서 bitwise XOR 연산을 누적하여 구한다.
문제 풀이
def solution(data, col, row_begin, row_end):
sortedData = sorted(data, key=lambda x : (x[col-1], -x[0]))
S_is = []
for i in range(row_begin-1,row_end) :
S_i = 0
for s in sortedData[i] :
S_i += s % (i+1)
S_is.append(S_i)
answer = S_is[0]
for s in range(1,len(S_is)) :
answer ^= S_is[s]
return answer
배운 것
- reduce(function, array)
- function을 반복 가능한 객체의 요소에 차례대로(왼쪽에서 오른쪽으로) 누적 적용하여 이 객체를 하나의 값으로 줄이는 함수
- from functools 선언 필요!
# 위의 코드 적용
answer = reduce(lambda x,y : x^y, S_is)