페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#6327

스택 수열 1s 1024MB

문제

수열 A1부터 N까지의 수를 하나씩만 사용하여 만들어진 길이 N의 수열이다.

N=3의 경우 A123, 132, 213, 231, 312, 321과 같이 여섯 종류가 존재한다.

정수 N과 수열 A 가 주어졌을 때, 수열 A를 스택을 이용하여 1부터 N까지 오름차순으로 (N=3인 경우 123) 만드는 방법을 출력하는 프로그램을 작성하자.

만약 N=3,\ A=321인 경우,

push (스택에 A_1=3을 삽입한다)

push (스택에 A_2=2를 삽입한다)

push (스택에 A_3=1을 삽입한다)

pop (스택의 top에 있는 값인 1을 출력한다)

pop (스택의 top에 있는 값인 2을 출력한다)

pop (스택의 top에 있는 값인 3을 출력한다)

순서로 진행하면 123이 순서대로 만들어진다.


입력

첫 줄에 정수 N이 주어진다. (1 \le N \le 9)

두 번째 줄에 수열 A가 주어진다.


출력

만약 만드는 것이 불가능한 경우 -1을 출력하고, 아니라면 순서대로 push와 pop을 출력한다.


예제 #1

3
321
push
push
push
pop
pop
pop

예제 #2

3
231
-1


출처

koistudy
로그인해야 코드를 작성할 수 있어요.