모두CBT

다음은 정수를 저장할 수 있는 스택을 Java로 구현한 것이다. ㉠과 … | [국회직 9급 컴퓨터일반] 19년 1회차 기출문제 상세 페이지

1[국회직 9급 컴퓨터일반] 19년 1회차
다음은 정수를 저장할 수 있는 스택을 Java로 구현한 것이다. ㉠과 ㉡에 넣을 문장으로 옳은 것은?
public class StackInt {
int size, top;
int buf[];
public StackInt(int s) {
buf = new int[s];
size = s;
top = -1;
}
public void push(int x) {
㉠ ;
}
public int pop() {
㉡ ;
}
}

㉠ ㉡
1
buf[++top] = x return buf[--top]
2
buf[top] = x return buf[top]
3
buf[--top] = x return buf[top++]
4
buf[++top] = x return buf[top--]
5
buf[top + 1] = x return buf[top – 1]
해설

㉠은 buf[++top] = x, ㉡은 return buf[top--]가 맞다.

top의 초깃값이 -1이므로 top은 마지막으로 넣은 원소의 위치를 가리킨다. push는 top을 먼저 올린 뒤 저장하고, pop은 값을 반환한 뒤 top을 내려야 한다.

  • buf[++top] = x와 return buf[--top]: pop이 top을 먼저 내려 맨 위 원소가 아닌 그 아래 원소를 반환한다.
  • buf[top] = x와 return buf[top]: top이 변하지 않고, 첫 push부터 인덱스 -1에 접근한다.
  • buf[--top] = x와 return buf[top++]: top을 내리며 저장해 인덱스가 범위를 벗어난다.
  • buf[top + 1] = x와 return buf[top – 1]: top이 갱신되지 않아 스택의 위치가 관리되지 않는다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[국회직 9급 컴퓨터일반] 19년 1회차 20문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요국회직 9급 컴퓨터일반 기출문제 암기장 전체 보기