Algorithm Problems

[백준] [Python] 11866번 요세푸스 문제 0 - 큐

WakaraNai 2021. 5. 8. 13:54
728x90
반응형

 

www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

Python

from collections import deque
n,m = map(int, input().split())
q = deque()

for i in range(m, n+1):
    q.append(i)
for i in range(1, m):
    q.append(i)
    
print('<', end="")
while len(q) > 1:
    print(q.popleft(), end = ", ")
    if q:
        for _ in range(m-1):
            q.append(q.popleft())
print(str(q.popleft()) + '>')

 

print() 문자열이 귀찮아 보일 때는 모든 값을 리스트에 저장한 후 join()과 formatting을 쓰자

 

 

깔끔한 코드

출처: it-garden.tistory.com/285

from collections import deque
n,m = map(int, input().split())

q = deque( [i for i in range(1, n+1)] )
result = []

while q:
    for _ in range(m-1):
        q.append(q.popleft())
    result.append(q.popleft())

print("<%s>" % (", ".join(result)))
728x90
반응형