1158. 요세푸스 문제
import sys
input = sys.stdin.readline
length, num = map(int, input().split())
arr = [i for i in range(1, length+1)]
temp = num - 1
result = []
while len(arr) > 0:
temp %= len(arr) # 배열의 길이에서 숫자-1을 나눈 나머지를 담음
result.append(arr.pop(temp)) # 배열의 temp번째를 뽑아내서 result에 담음
temp += num - 1 # temp에 num-1을 더함
print("<", end="")
print(", ".join(map(str, result)), end="")
print(">")
1874. 스택 수열
import sys
input = sys.stdin.readline
n = int(input())
num_list = []
result = []
for _ in range(n):
num_list.append(int(input()))
stack = []
current = 1
idx = 0
for num in num_list:
while current <= num: # 현재 넣어야 하는 수까지 스택에 push
stack.append(current)
result.append('+')
current += 1
if stack[-1] == num: # 스택의 top이 현재 수와 같다면 pop
stack.pop()
result.append('-')
else: # 스택의 top이 현재 수와 다르다면 주어진 수열을 만들 수 없음
print('NO')
exit(0)
for r in result:
print(r)