문제 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

문제 접근 방식

문제의 조건에 맞춰 데이터를 정렬하고 처리하는 정렬 및 구현 문제이다.

1. 주어진 데이터들을 [k열 오름차순 > 1열 내림차순]으로 정렬한다
2. [row_begin,row_end] 범위에 해당하는 튜플들의 mod를 구하고, mod 값을 XOR로 누적한다

 

코드

def solution(data, col, row_begin, row_end):
	# k 열, 0번 열 기준으로 각각 오름, 내림차순 정렬
    sorted_data=sorted(data,key=lambda x:(x[col-1],-x[0]))
    answer = 0
    
    # 범위에 해당하는 튜플들의 mod를 구해서 XOR 연산을 수행한다
    for i in range(row_begin,row_end+1):
        mod=sum(map(lambda x:(x%(i)),sorted_data[i-1]))
        answer^=mod
    return answer

 

 

회고

XOR 연산을 직접적으로 할 일이 많이 없다보니, 해당 연산을 어떻게 처리할지 몰라서 처음에 당황했다.

다행히 XOR 기호인 ^를 사용하면 XOR이 적용되는 것을 확인해서 해당 연산자를 통해 문제를 풀 수 있었다.

 

 

+ Recent posts