테이블 해시 함수

송용진·2025년 4월 2일
0

알고리즘과 자료구조

목록 보기
182/190

https://school.programmers.co.kr/learn/courses/30/lessons/147354

정답

def solution(data, col, row_begin, row_end):
    # 1. col-1로 인덱스 조정
    col_index = col - 1
    
    # 2. 정렬: col번째 기준 오름차순, 같은 값일 경우 기본키 기준 내림차순
    data.sort(key=lambda x: (x[col_index], -x[0]))
    
    # 3. S_i 계산 및 XOR 연산
    hash_value = 0
    for i in range(row_begin, row_end + 1):
        S_i = sum(value % i for value in data[i - 1])  # i-1로 인덱스 조정
        hash_value ^= S_i  # XOR 연산

    return hash_value

오답노트

4.row_begin ≤ i ≤ row_end 인 모든 S_i를 누적하여
bitwise XOR 한 값을 해시 값으로서 반환합니다.

hash_value = 0
    for i in range(row_begin, row_end + 1):
        S_i = sum(value % i for value in data[i - 1])  # i-1로 인덱스 조정
        hash_value ^= S_i  # XOR 연산

대부분의 코드를 비슷하게 구현하였지만
모든 S_i를 누적하여
bitwise XOR 한다는 의미를 정확히 파악하지 못하여
일부 케이스에서는 실패했었음

profile
개발자

0개의 댓글