다음 C 프로그램에서 스택의 top 변화를 순서대로 추적하여 출력되는 숫자열을 쓰시오.
#include <stdio.h>
int stack[10];
int top = -1;
void push(int value) { stack[++top] = value; }
int pop(void) { return stack[top--]; }
int main(void) {
push(7); push(3);
printf("%d", pop());
push(8); push(2);
printf("%d", pop());
push(5);
printf("%d", pop());
printf("%d", pop());
printf("%d", pop());
return 0;
}모범답안
32587
풀이와 판단 근거
스택은 마지막에 넣은 값이 먼저 나오는 LIFO 구조다. 7,3을 넣고 pop하면 3이다.
8,2를 추가한 뒤 pop하면 2, 5를 넣었다가 바로 pop하면 5다. 남은 스택은 아래부터 7,8이므로 다음 두 pop은 8과 7이다.
출력값을 차례로 붙이면 `32587`이 된다.
자주 틀리는 지점
- 먼저 들어간 7부터 꺼내는 큐처럼 계산함
- pop 뒤 top 감소를 반영하지 않음
- 중간에 push한 5 아래에 2가 남아 있다고 봄
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.