Informatica Online Judge

  스택 순열 [2200 / 0898]

Time Limit(Test case) : 2000(ms)
Number of users who solved : 13   Total Tried : 38


The Champion of this Problem (C++) : gs17003 - 0ms / 440byte
My Best Submission (C++) : N/A

[JKJeong 2018]

Background

1부터 n까지의 숫자들을 순서대로 나열하여 길이가 n인 문자열을 만든다.

예를 들어 n이 3이면 "123"을 의미한다.

이 문자열을 이루는 각 숫들을 왼쪽에서부터 차례로 스택을 이용하여 새로운 순열을 만들 수 있다.

만약 123을 스택을 이용하여 다음과 같은 순열을 만들 수 있다.

"1" - push
"2" - push
"3" - push
pop
pop
pop

을 하면 "321"을 만들 수 있다.

또 다른 방법으로 다음과 같은 문자열을 만들 수도 있다.

"1" - push
"2" - push
pop
"3" - push
pop
pop

을 이용하면 "231"을 만들 수도 있다.

이와 같이 스택을 이용하여 만들 수 있는 순열들을 스택순열이라고 한다.

이와 같이 "123"으로 만들 수 있는 모든 스택순열을 내림차순으로 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

Input

첫 번째 줄에 n이 입력된다.

[입력값의 정의역]

1 <= n <= 9

Output

만들어진 스택순열을 내림차순으로 출력한다.

IO Example

입력
3

출력
321
231
213
132
123

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]