정답: 2번 스택은 LIFO(Last In, First Out) 원칙을 따릅니다. 즉, 가장 나중에 들어간 데이터가 가장 먼저 나옵니다. 입력 순서가 A, B, C, D일 때 각 보기의 가능성을 확인합니다. 1. **B, A, D, C**: * A push * B push * B pop (출력: B) * A pop (출력: A) * C push * D push * D pop (출력: D) * C pop (출력: C) * 가능합니다. 2. **D, A, B, C**: * D가 가장 먼저 출력되려면, A, B, C가 먼저 스택에 들어가고 D가 가장 나중에 들어가야 합니다. * A push * B push * C push * D push * D pop (출력: D) * 현재 스택에는 A, B, C가 순서대로 쌓여있고, C가 스택의 맨 위에 있습니다. * D 다음에 A를 출력하려면 C와 B를 먼저 출력해야 합니다. 따라서 D 다음에는 C가 출력되어야 하고, 그 다음 B, 그 다음 A가 출력되어야 합니다. (D, C, B, A) * 따라서 D 다음에 A가 출력되는 것은 불가능합니다. 3. **B, C, D, A**: * A push * B push * B pop (출력: B) * C push * C pop (출력: C) * D push * D pop (출력: D) * A pop (출력: A) * 가능합니다. 4. **C, B, A, D**: * A push * B push * C push * C pop (출력: C) * B pop (출력: B) * A pop (출력: A) * D push * D pop (출력: D) * 가능합니다. 따라서 D, A, B, C는 스택의 출력 결과로 불가능합니다.