순서가 ABCD라고 했는데
그럼 스택에 입력될 수 있는 경우는
1) (bottom) ABCD (top)
2) (bottom) BCDA (top)
3) (bottom) CDAB (top)
4) (bottom) DABC (top)
이렇게 네가지 경우밖에 없는거 아닌가요?
이럴 경우에 출력 순서는
1) DCBA
2) ADCB
3) BADC
4) CBAD
이렇게 네가지 경우가 되는거 아닌가요...?ㅠㅠ 답변주세요~!!
안녕하세요.
교재의 해설처럼 A, B, C, D 순으로 자료를 입력할 때 A, B, C, D 순으로 자료를 출력하려면
Push(입력)과 Pop(출력) 과정을 이용하여
A를 입력한 후 바로 출력하여 A 출력
B를 입력한 후 바로 출력하여 B 출력
이와 같이 A, B, C, D를 각각 입력한 후 바로 출력하여 A, B, C, D 순으로 출력할 수 있습니다.
하지만 3번은 해설에서와 같이 D를 출력하려면 우선 A, B, C, D를 모두 입력한 후에 D를 출력할 수 있습니다.
제시된 출력 순서가 D가 가정 먼저 이기 때문이죠.
그런 다음 C를 출력하고 이어서 A를 출력해야 하는데, B를 출력하지 않고서는 A를 출력할 수 없기 때문에
D, C, A, B의 출력은 가능한 출력순서가 아닌 것입니다.
2번은 A, B, C 입력 후 C 출력, D 입력 후 D 출력, B 출력, A 출력을 수행하면 C, D, B, A의 순서로 출력이 가능합니다.
오늘도 즐거운 하루 되세요.
-
*2016-02-19 09:20:25
안녕하세요.
교재의 해설처럼 A, B, C, D 순으로 자료를 입력할 때 A, B, C, D 순으로 자료를 출력하려면
Push(입력)과 Pop(출력) 과정을 이용하여
A를 입력한 후 바로 출력하여 A 출력
B를 입력한 후 바로 출력하여 B 출력
이와 같이 A, B, C, D를 각각 입력한 후 바로 출력하여 A, B, C, D 순으로 출력할 수 있습니다.
하지만 3번은 해설에서와 같이 D를 출력하려면 우선 A, B, C, D를 모두 입력한 후에 D를 출력할 수 있습니다.
제시된 출력 순서가 D가 가정 먼저 이기 때문이죠.
그런 다음 C를 출력하고 이어서 A를 출력해야 하는데, B를 출력하지 않고서는 A를 출력할 수 없기 때문에
D, C, A, B의 출력은 가능한 출력순서가 아닌 것입니다.
2번은 A, B, C 입력 후 C 출력, D 입력 후 D 출력, B 출력, A 출력을 수행하면 C, D, B, A의 순서로 출력이 가능합니다.
오늘도 즐거운 하루 되세요.