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를 출력
'--------------------*** > 자료구조' 카테고리의 다른 글
Stack/Queue (0) | 2020.03.03 |
---|---|
스택 중위표기식을 후위표기식으로 전환 (0) | 2020.02.20 |
[하노이 타워] c++코드 이해/순환 알고리즘 (0) | 2020.02.18 |
[주소와 포인터] 복습 (0) | 2020.02.18 |
[배열] 2차원 배열 복습 (0) | 2020.02.17 |