2.A, B, C, D의 순서로 정해진 입력자료를 스택에 입력하였다가 출력한 결과가 될 수 없는 것은?(단, 왼쪽부터 먼저 출력된 순서이다)
해설
가. 순서 : A입력 -> B입력 -> C입력 -> D입력 -> (스택에는 [TOP] D C B A [BOTTOM]) 출력D -> 출력C -> 출력B -> 출력A 나. 순서 : A입력 -> B입력 -> C입력 -> 출력C -> (스택에는 [TOP] B A [BOTTOM]) -> D입력 -> (스택에는 [TOP] D B A [BOTTOM]) -> 출력D -> (스택에는 [TOP] B A [BOTTOM]) -> A가 먼저 출력될수 없음! 다. 순서 : A입력 -> 출력A -> B입력 -> 출력B -> C입력 -> 출력C -> D입력 -> 출력D 라. 순서 : A입력 -> B입력 -> 출력B -> (스택에는 [TOP] A [BOTTOM]) C입력 -> 출력C -> (스택에는 여전히 A ) D입력 -> 출력D -> (스택에는 여전히 A ) 출력A 스택이란 같은공간에서 입력과 출력을 담당하게됩니다. 쉽게 생각해서 프링글스통같이 기다란통이라고 생각하시면됩니다. 프링글스통에 프링글스 A,B,C,D순서로 넣었다고 하겟습니다. 그렇다면 맨위에 D가 있는거겟죠? 프링글스를 뺄때 맨위에 있는 D부터 빠지겟습니다. 그다음은 C가 되겟죠 그다음은 B 그다음은 A입니다. 그래서 가번은 맞게 되는것입니다. 이제 나번을 보시죠 먼저 C를 꺼내기 위해선 A,B를 넣어야겟죠? 그리고 C를 넣게 됩니다. C를 넣은후에 다시 바로 빼고 통엔 A,B가 있겟죠 그위에 다시 D를 넣어야합니다. 다시 D를 꺼내고 나면 통엔 A,B가 있습니다 그러면 반드시 B를 먼저 꺼내야하기 때문에 오답입니다.