동캄의 코딩도장

백준 1158 [요세푸스 문제] 파이썬 본문

코테/BOJ

백준 1158 [요세푸스 문제] 파이썬

동 캄 2025. 2. 12. 23:16
반응형

예전에 풀었었는데 다시 풀어보았다.

 

예전 코드

n,k=map(int,input().split())
index=0
lst=[]
ans=[]
for i in range(n):
    lst.append(i+1)

i=0
while(len(lst)>1):
    i=(i+k-1)%len(lst)
    ans.append(lst.pop((i)%len(lst)))

ans.append(lst[0])
print('<',end='')
for i in range(n-1):
    print(ans[i],end=', ')
print(ans[-1],end='')
print('>')

 

지금코드

from collections import deque
N,K= map(int,input().split())
lst=[i for i in range(1,N+1)]
ans=[]
q=deque(lst)
while q:
    q.rotate(-(K-1))
    ans.append(q[0])
    q.popleft()

print('<',end='')
for i in range(len(ans)):
    if i==len(ans)-1:
        print(ans[i],end='')
    else:
        print(ans[i],end=', ')
print('>')

덱을 잘 써봐야겠다.

q.rotate

q.popleft 유용하다.

반응형

'코테 > BOJ' 카테고리의 다른 글

백준 9012 [괄호] 파이썬  (0) 2025.02.13
백준 5397 [키로거] 파이썬  (0) 2025.02.13
백준 3273 [두 수의 합] 파이썬  (0) 2025.02.12
백준 14940 [쉬운 최단거리] 파이썬  (0) 2025.02.04
백준 1991 [트리순회] 파이썬  (0) 2025.02.04