자료 구조,덱
# 1. 제일 위의 카드 1장을 바닥에 내려놓는다.
# 2. 위에서 두 번째 카드를 바닥에 내려놓는다.
카드가 2장 이상일 때만 쓸 수 있다.
# 3. 제일 밑에 있는 카드를 바닥에 내려놓는다.
카드가 2장 이상일 때만 쓸 수 있다.
from collections import deque
import sys
n = int(sys.stdin.readline().rstrip())
lis = list(map(int,sys.stdin.readline().rstrip().split()))
# lis.sort(reverse=True)
# 위에서부터 1 2 3 4 5 6 ...
newarr = deque()
for i in range(n,0,-1) :
# print(newarr,lis[i-1],i)
if lis[i-1]==1 :
newarr.appendleft(n+1-i)
elif lis[i-1]==2 :
#newarr[1]=i
if len(newarr)==1 :
newarr.append(n+1-i)
elif len(newarr)>=2 :
newarr.insert(1,n+1-i)
else :
newarr.append(n+1-i)
for n in newarr : print(n, end=" ")
추가로 여기에 15652 도 정리할게
그것은 바로 중복조합 문제지
중복조합은 combinations_with_replacement(lis, m)