문제 링크
풀이
import sys
n, k = map(int, sys.stdin.readline().split())
lst = [x for x in range(1, n+1)]
permutation = []
idx = 0
while lst:
idx += k - 1
if idx >= len(lst):
idx %= len(lst)
deleted = lst[idx]
lst.remove(deleted)
permutation.append(deleted)
print("<" + ", ".join(map(str, permutation)) + ">")
1부터 n까지 담긴 리스트를 만들어서 k번째 수를 제거하고, 제거된 다음 수부터 시작하여 또 k번째 수를 제거하기를 반복한다. 제거된 수는 빈 리스트인 permutation에 차례대로 저장된다. idx가 지정된 범위를 초과하였을 시에는 남은 수의 개수로 나눈 나머지를 지정한다.
'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 7568] 덩치 with Node.js (0) | 2021.04.09 |
---|---|
[백준 1181] 단어 정렬 with Node.js (0) | 2021.04.09 |
[백준 1427] 소트인사이드 with Node.js (0) | 2021.04.08 |
[백준 2609] 최대공약수와 최소공배수 with Node.js (0) | 2021.04.08 |
[백준 2164] 카드2 with Python (0) | 2021.04.07 |