[Python] 백준 1158번 요세푸스 문제
1158번 (요세푸스 문제)
생각보다 어려웠던 문제다.
queue
를 이용하면 쉽게 풀 수 있다!
예를 들어 문제와 같이 K=3 이라면, 배열 앞에 2개를 popleft() 하고 뒤로 보내고 다시 한번 popleft()해서 정답 배열에 append 하면 된다. -> 배열이 빌 때까지 반복
<정답>
from collections import deque
N, K = map(int, stdin.readline().split())
human = deque()
for i in range(N):
human.append(i+1)
re = []
while len(human) >= 1:
for i in range(K-1):
human.append(human.popleft())
re.append(human.popleft())
#정답 출력
print('<', end='')
for i in range(N):
if i == N-1:
print(re[i], end='>')
else:
print(re[i], end=', ')
Author And Source
이 문제에 관하여([Python] 백준 1158번 요세푸스 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sein/Python-백준-1158번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)