문제
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이 적용되는 것을 확인해서 해당 연산자를 통해 문제를 풀 수 있었다.
'문제풀이 > 프로그래머스' 카테고리의 다른 글
줄 서는 방법(프로그래머스) 문제풀이 (1) | 2024.04.12 |
---|---|
점 찍기(프로그래머스) 문제풀이 (0) | 2024.04.05 |
호텔 대실(프로그래머스) 문제풀이 (0) | 2024.04.05 |
배달(프로그래머스) 문제풀이 (0) | 2024.04.05 |
큰 수 만들기(프로그래머스) 문제풀이 (0) | 2024.03.29 |