문제
https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
설계
파이썬
N, K = map(int, input().split())
arr = [i + 1 for i in range(N)]
answer = []
now = K - 1
while len(arr):
answer.append(arr[now])
arr.pop(now)
now = now + K - 1 # pop을 먼저 했으므로 숫자 1개가 줄어든다.
if len(arr) > 0: # zero division 방지
now %= len(arr)
# 결과 출력
print('<', end='')
for i in range(len(answer)):
if i == len(answer) - 1:
print(answer[i], end='')
else:
print(answer[i], end=', ')
print('>', sep='')
'PS (Problem Solving) > Baekjoon' 카테고리의 다른 글
[백준] 2302. 극장 좌석 - 파이썬 (0) | 2023.03.02 |
---|---|
[백준] 2304. 창고 다각형 - 파이썬 (0) | 2023.03.02 |
[백준] 2581. 소수 - 파이썬 (0) | 2023.02.01 |
[백준] 12931. 두 배 더하기 - 파이썬 (0) | 2023.01.31 |
[백준] 16198. 에너지 모으기 - 파이썬 (0) | 2023.01.31 |