본문 바로가기
--------------------***/자료구조

스택에 입력했다 출력하는 경우 출력순서의 결과가 아닌것

by kk님 2020. 5. 24.

A,B,C,D로 입력이 정해졌을 때, 스택에 입력했다 출력하는 경우 출력순서의 결과가 아닌것

 

A,B,C,D

C,D,B,A

D,C,A,B

B,C,D,A

 

=> 문제는 B를 스택에 넣으려면 A를 먼저 넣어야 한다.

 C를 스택에 넣으려면 A그리고 B를 먼저 넣어야 한다.

대신 넣은것은 언제든 출력 가능. 다만, 입력 순서만 지켜주면 된다.

 

1. A를 넣고 바로 출력, B를 넣고 바로 출력, C를 넣고 바로 출력, D를 넣고 바로 출력

2. A와 B와 C를 순서대로 넣고 C를 바로 출력, D를 넣고 바로 출력, B를 출력, A를 바로 출력

3. D와 C를 출력하려면 먼저 스택에 A와 B가 있어야 하는데, (입력할때 순서가 ABCD순서이므로 D를 입력하려면 ABC가 어쨌든 입력이 되어야 한다.) 그런데 스택에 A가 반드시 먼저 들어가야 하므로 B는 그 다음 순서일수밖에 없다. 그런데, 출력은 A가 먼저이므로 불가능

4. A와 B를 순서대로 넣고 B를 바로 출력, C를 넣고 바로 출력, D를 넣고 바로 출력, A를 출력