곧죽어도 콛잉

[BOJ 1158 / Python] 요세푸스 문제 본문

Coding Test/Python

[BOJ 1158 / Python] 요세푸스 문제

코드진행형 2024. 2. 27. 14:16

https://www.acmicpc.net/problem/1158

 

1158번: 요세푸스 문제

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

www.acmicpc.net

 

 

회전하는 큐 문제라고 생각하면 매우 쉬워진다! 그냥 rotate를 사용하면 끝!

 

다만 파이썬에서 사용하는 출력이 매우 불편했다..... 무조건 줄바꿈이 되는 print는 불편해...

그래서 다른 사람들의 프린트하는 부분의 코드만 봐봤다.

 

from collections import deque

N, K = map(int, input().split())
dq = deque([i+1 for i in range(N)])
arr = []
while(len(dq)>0):
    dq.rotate(-(K-1))
    arr.append(dq.popleft())


print('<', end='')
for i in arr[:-1]:
    print(i, end=', ') 
print(str(arr[-1]) + '>')
print("<", ", ".join(map(str, arr)), ">", sep="")

# 출력하는 부분만

 

 

Comments