https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
# 1158 - Python 3
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
arr = [i for i in range(1, n + 1)]
answer = []
idx = 0
for _ in range(n):
idx += k - 1 # pop될 arr 값의 idx
if idx >= len(arr): # idx가 남은 수의 개수보다 큰 경우
idx %= len(arr)
answer.append(str(arr.pop(idx))) # join 함수는 str형태에 적용됨
print("<", ", ".join(answer), ">", sep = '')'코딩' 카테고리의 다른 글
| [Python] 백준 #1076. 저항 (1) | 2023.11.18 |
|---|---|
| [Python] 백준 #1026. 보물 (0) | 2023.09.22 |
| [Python] 백준 #1676. 팩토리얼 0의 개수 (0) | 2023.09.22 |
| [Python] 백준 #1769. 3의 배수 (0) | 2023.09.21 |
| [Python] 백준 #1312. 소수 (0) | 2023.09.21 |