[프로그래머스] 테이블 해시 함수

최동혁·2022년 12월 22일
0

프로그래머스

목록 보기
34/68

풀이 방법

문제에서 말한대로 람다 값으로 col - 1 번째 기준 오름차순 정렬, 같다면 0번째 인덱스로 내림차순 정렬한다.
그 후, 정렬된 데이터를 기준으로 begin 부터 end 까지 슬라이싱 해준다.
정렬 + 슬라이싱된 데이터를 기준으로 순회하며 i로 나눈 나머지 값들을 계속해서 더해주면서 XOR 연산을 한다.
파이썬에서 XOR 연산자는 ^이다.

풀이 코드

def solution(data, col, row_begin, row_end):
    answer = 0
    ls = []
    data = sorted(data, key = lambda x : (x[col - 1], -x[0]))
    data = data[row_begin - 1 : row_end]

    for d in data:
        s = 0
        for a in d:
            s += a % row_begin
        
        if not ls:
            ls.append(s)
        else:
            ls[0] = ls[0] ^ s
        row_begin += 1
    
    return ls[0]
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글