https://www.acmicpc.net/problem/1158
import sys
from collections import deque
n, k = map(int, sys.stdin.readline().split())
queue = deque()
result = ""
# queue에 1~n까지 저장
for i in range(1, n + 1):
queue.append(i)
for _ in range(n):
# k-1 번째까지 수를 queue의 마지막으로 이동
for _ in range(k - 1):
queue.append(queue.popleft())
# k 번째 수를 queue에서 삭제 및 결과값에 추가
result += str(queue.popleft())
print("<", ", ".join(result), ">", sep="")
예제 입력을 대입할 경우 올바른 예제 출력값이 출력되지만 숫자가 두 자리 수로 넘어가는
경우 출력 시 두 자리 숫자 문자열이 모두 나눠져서 출력된다.
따라서 result를 list로 바꿔 코드를 수정한다.
import sys
from collections import deque
n, k = map(int, sys.stdin.readline().split())
queue = deque()
result = []
# queue에 1~n까지 저장
for i in range(1, n + 1):
queue.append(i)
for _ in range(n):
# k-1 번째까지 수를 queue의 마지막으로 이동
for _ in range(k - 1):
queue.append(queue.popleft())
# k 번째 수를 queue에서 삭제 및 결과값에 추가
result.append(queue.popleft())
print("".join(str(result)).replace("[", "<").replace("]", ">"))