하루일문
[백준] 1158 큐 (파이썬) 본문
문제
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
풀이
N, K = map(int, input().split())
li=[]
li_2 = []
for i in range(1, N + 1):
li.append(i)
k = K -1
while li:
if k >= len(li):
while k >= len(li):
k -= len(li)
li_2.append(str(li.pop(k)))
k -= 1
else:
li_2.append(str(li.pop(k)))
k -= 1
k += K
print("<%s>" %(", ".join(li_2)))
해설
개인적으로 이 문제의 포인트는 출력이라고 생각한다.
" ".join(list)는 " "에 있는 것을 붙여서 리스트의 각 항목을 생성한다.
%s는 문자 %를 넣어준다. 그래서 str로 append했다
'algorithm > baekjoon' 카테고리의 다른 글
[백준] 1012번 유기농 배추(파이썬) (0) | 2023.03.05 |
---|---|
[백준] 10866번 덱(파이썬) (1) | 2023.03.05 |
[백준] 10854 큐 (파이썬) (0) | 2023.03.04 |
[백준] 1406번 에디터(파이썬) (0) | 2023.03.03 |
[백준] 1874번 스택 수열 (파이썬) (0) | 2023.03.02 |