19.순서가 A, B, C, D로 정해진 입력 자료를 스택에 입력하였다가 출력한 결과로 옳은 것은?
해설
아래와 같은 오류 신고가 있었습니다. 여러분들의 많은 의견 부탁 드립니다. 추후 여러분들의 의견을 반영하여 정답을 수정하도록 하겠습니다. 참고로 정답 변경은 오류 신고 5회 이상일 경우 수정합니다. [오류 신고 내용] 스택에 ABCD 넣으면 마지막에 넣은것부터 DCBA가 나와야함 [관리자 입니다. 위에 오류신고 하신분... 스택관련하여 문제를 처음 풀어 보시는것 같네요.. 문제에서 주어진 ABCD 순서대로 넣었을때라는 말이 A넣고 아무것도 안하고 B를 넣어다는게 아닙니다. 들어가는 순서가 A, B, C, D 순서대로 일 뿐입니다. 좀 극단적인 예가 될수도 있지만.. A를 스택에 넣고 A를 바로 빼내고 B를 스택에 넣고 B를 바로 빼내고 C를 스택에 넣고 C를 바로 빼내고 D를 스택에 넣고 D를 바로 빼내고 이경우 출력인 ABCD가 될수도 있습니다... 문제에서 주어진 ABCD는 주어진 알파벳 4개의 들어가는 순서이지 중간에 POP를 통해서 데이터를 빼지 않았다는 가정이 아닙니다. 이정도만 설명할께요.. 열공들 하세요.] [추가 해설] 관리자님 말대로 BADC가 맞습니다. 해당문제에 DCBA 라는 항목이 있다면 답이 두개가 되버리는데 없으니 [추가 해설] A B C D를 스택에 입력(Push)했다가 출력(Pop)하는 경우를 생각하며 보기를 봅니다. 1.A, D, B, C → A를 입력하고 출력 한 뒤 B를 입력합니다. A의 다음에 D가 출력되었다고 나와있으니 B, C, D 차례대로 입력했다고 가정하면 D가 나온 다음에는 D의 이전에 입력되었던 C가 나와야 맞습니다. 때문에 1번은 틀렸습니다. 2.B, A, D, C → B가 제일 처음 입력되었다는 것은 A가 입력된 후 출력하지 않고 B가 입력되었다는 것입니다. B를 입력한 뒤 출력하고, B의 이전에 입력한 A도 B 다음으로 출력해준다고 가정합니다. A의 다음으로 출력된 것은 D이며 이것으로 C를 입력한 후 D를 입력했다고 가정할 수 있습니다. D를 입력한 뒤 출력하고, D의 이전에 입력한 C도 D다음으로 출력해준다면 보기의 출력이 있을 수 있는 출력이라는 것을 알 수 있습니다. 3.C, A, B, D → C가 제일 앞에 왔으니, 출력되는 것 없이 A, B, C까지 입력되었다고 가정할 수 있습니다. C의 다음으로 A가 출력되었는데, C의 이전에 입력된 것은 B이므로 이것이 틀렸다는 것을 알 수 있습니다. (위의 것을 맞게 고치려면 C, B, A, D같이 순서를 바꿔주면 됩니다.) 4.D, B, C, A → D가 제일 앞에 왔으니, 출력되는 것 없이 A, B, C, D까지 입력되었다고 가정할 수 있습니다. D의 다음으로 B가 출력되었는데, D의 이전에 입력된 것은 C이므로 이것이 틀렸다는 것을 알 수 있습니다.