코딩테스트 준비

큐 자료구조 문제

언어 수집가 2021. 2. 23. 01:03

백준

요세푸스 문제

from collections import deque
n, k = map(int, input().split())
arr = [0]
for i in range(1, n+1):
arr.append(i)
tab = [False]*(n+1)
tab[0] = True
queue = deque()
queue.append(k)
res = []
while queue:
x = queue.popleft()
res.append(x)
tab[x] = True
count = 0
while True:
if False in tab:
x += 1
if x > n:
x = x - n
if tab[x] == False:
count += 1
else:
continue
if count == k:
queue.append(arr[x])
break
else:
break
print('<', end='')
print(*res, sep=', ', end='')
print('>', end='')
n, k = map(int, input().split())
arr = [i for i in range(1, n+1)]
answer = []
num = 0
for i in range(n):
num += k-1
if num >= len(arr):
num = num % len(arr)
answer.append(arr.pop(num))
print('<', end='')
print(*answer, sep=', ', end='')
print('>')
view raw 정답 코드 hosted with ❤ by GitHub