하루일문

[백준] 11866번 요세푸스 문제 0(파이썬) 본문

algorithm/baekjoon

[백준] 11866번 요세푸스 문제 0(파이썬)

support_u 2023. 3. 30. 04:44

문제

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net

코드

k, n = map(int, input().split())

li = [i for i in range(1, k + 1)]
li_2 = []
m = n - 1
while li:
    if m >= k:
        m = m % k
    li_2.append(li.pop(m))
    m += n - 1
    k -= 1
print('<', end='')
for i in range(len(li_2)-1):
    print(li_2[i], end=', ')
print(li_2[-1], end='')
print('>')

해설

li에 숫자를 다 넣어놓고, m += n - 1해서 그 인덱스만큼 pop하고 append해서 출력해준다.