[김태원 알고리즘] 공주 구하기 (큐)
사용 언어: Python3
문제
풀이
내 풀이
from collections import deque
N, K = map(int, input().split())
q = deque([x for x in range(1, N+1)])
while len(q) != 1:
q.rotate(-(K-1)) # 해당 숫자만큼 회전 (음수: 반시계 방향)
q.popleft() # K-1번째까지는 rotate 시키고 K번째는 pop
print(q[0])
- 큐 활용법은 이 글을 참고했다.
다른 풀이
from collections import deque
N, K = map(int, input().split())
q = deque(list(range(1, N+1)))
while len(q) != 1:
for _ in range(K-1):
q.append(q.popleft())
q.popleft() # K번째 사람은 pop
print(q[0])
rotate()
를popleft()
와append()
의 조합으로 직접 구현한 풀이이다.
💛 개인 공부 기록용 블로그입니다. 👻