찰리의 놀이터

(C언어) 스택 수열 - 백준 1874번 본문

알고리즘 공부

(C언어) 스택 수열 - 백준 1874번

차알리 2021. 4. 29. 23:55

스택 수열

시간제한: 2 Sec 메모리제한: 128 MB 제출: 54526 해결: 18568

1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다.

임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop연산을 수행해야 하는지를 알아내자.

이를 계산하는 프로그램을 작성하라.

push : +

pop : -

n=8일 때,

input : 4 3 6 8 7 5 2 1

output : + + + + - - + + - + + - - - - -

첫 줄에 n (1 ≤ n ≤ 100,000)이 주어진다. 둘째 줄부터 n개의 줄에는 수열을 이루는 1이상 n이하의 정수가 하나씩 순서대로 주어진다. 물론 같은 정수가 두 번 나오는 일은 없다.

입력된 수열을 만들기 위해 필요한 연산을 한 줄에 한 개씩 출력한다. push연산은 +로, pop 연산은 -로 표현하도록 한다. 불가능한 경우 NO를 출력한다.

8

4

3

6

8

7

5

2

1

+

+

+

+

-

-

+

+

-

+

+

-

-

-

-

-

5

1

2

5

3

4

NO

----------------------------------------------------------------문제풀이---------------------------------------------------------