https://www.acmicpc.net/problem/11866
#Solution
숫자를 담은 리스트(stack), 이를 지속적으로 도는 temp, 맞는 숫자를 pop하여 result에 넣는 식을 통해 간단하게 해결할 수 있다.
N, K = map(int, input().split())
stack = [i for i in range(1, N + 1)]
result = []
temp = K - 1
for i in range(N):
if len(stack) > temp:
result.append(stack.pop(temp))
temp += K - 1
elif len(stack) <= temp:
temp = temp % len(stack)
result.append(stack.pop(temp))
temp += K - 1
print("<", end='')
for i in result:
if i == result[-1]:
print(i, end = '')
else:
print("%s, " %(i), end='')
print(">")
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#150 백준 파이썬 [4948] 베르트랑 공준 (0) | 2019.10.25 |
---|---|
#149 백준 파이썬 [5430] AC - 덱 (0) | 2019.10.24 |
#147 백준 파이썬 [1932] 정수 삼각형 (0) | 2019.10.24 |
#146 백준 파이썬 [2606] 바이러스 - BFS (0) | 2019.10.23 |
#145 백준 파이썬 [1967] 트리의 지름 - BFS (0) | 2019.10.23 |