[7급 국가직 자료구조론 2023년 20번]

다음 C 프로그램의 실행 결과는?
#include <stdio.h>
typedef struct stack { 
  int data[10]; int top;
} stack;
stack s1, s2;

void push(stack *ss, int i) {
  ss->top = ss->top + 1;
  ss->data[ss->top] = i;
}

int pop(stack *ss) {
  return ss->data[ss->top--];
}

int size(stack *ss) {
  return ((ss->top) + 1);
}

void push2(int n) {
  push(&s1, n);
}
  
int pop2() {
  if(size(&s2) == 0) {
    int s = size(&s1);
    for(int i = 0; i < s; i++)
      push(&s2, pop(&s1));
  }
  return pop(&s2);
}
 
int main(int argc, char **argv) {
  s1.top = s2.top = -1;  
  push2(1);  push2(2);  push2(3);
  printf("%d  ", pop2());
  printf("%d  ", pop2());
  push2(4);  push2(5);
  printf("%d  ", pop2());
  printf("%d  ", pop2());
  printf("%d  ", pop2());
  return 0;
}
자료구조론
  1. ①1 2 3 4 5
  2. ②2 1 5 4 3
  3. ③3 2 5 4 1
  4. ④5 4 3 2 1

선지를 골라 바로 채점해 보세요.

정답 ①

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

신고가 접수됐습니다. 감사합니다.

오류 신고