[골드 4] 백준 1327 - 소트 게임 (파이썬)
[골드 4] 백준 1327 - 소트 게임 (파이썬)
2025.07.02https://www.acmicpc.net/problem/1327풀이배열 A를 K개의 연속된 수만큼 뒤집는 연산을 통해 오름차순 [1, 2, ..., N]을 만드는 최소 횟수를 구하는 문제다.상태공간이 최대 N!이므로, 모든 경우를 다 탐색하면 안 되고, BFS로 최소 횟수를 탐색해야 한다.리스트 상태를 hash 값으로 바꿔서 방문 여부를 체크한다.def list_to_hash(a): hash = 0 for i in range(len(a)): hash += a[i] hash *= (len(a) + 1) return hash리스트를 정수형 hash 값으로 변환.(다만 완전한 유일성 보장은 안 됨 → tuple(a)을 쓰는 것이 더 안전)단순한 방식이지만, 충돌 가능..