코테/BOJ
백준 11866 [요세푸스 문제 0] 파이썬
동 캄
2022. 3. 7. 15:51
반응형
https://www.acmicpc.net/problem/11866
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
# 백준 11866
N, K = map(int, input().split())
lst = [0]*(N+1)
cnt = 0
k_count = 0
i = 0
answer = []
while N != cnt:
if lst[i % N+1] == 0:
k_count += 1
if k_count == K:
lst[i % N+1] = 1
answer.append(i % N+1)
cnt += 1
k_count = 0
i += 1
print('<', end='')
for i in range(len(answer)-1):
print(str(answer[i])+','+' ', end='')
print(str(answer[-1]), end='')
print('>', end='')
lst의 값이 1이면(존재하지 않음) 0이면 (존재)으로 구분하여 문제를 해결하였다.
from collections import deque
n, k = map(int, input().split())
s = deque([])
for i in range(1, n + 1):
s.append(i)
print('<', end='')
while s:
for i in range(k - 1):
s.append(s[0])
s.popleft()
print(s.popleft(), end='')
if s:
print(', ', end='')
print('>')
다른 분의 풀이인데, deque으로 문제를 해결하였다. (정말 잘 푸셨다.)
반응형