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)