본문 바로가기
IT/algorithm

[Python] 알고리즘 개념7 퀴즈 - 스택

by Echinacea 2025. 2. 21.
반응형

 

📌 퀴즈 개요

다음 퀴즈를 통해 스택(Stack) 개념을 정확히 이해하고 있는지 확인해 보세요! 😊


 

 

🧩 1. 개념 이해 문제

 
(1) 스택(Stack)의 특징으로 옳지 않은 것은?

  1. push 연산을 통해 데이터를 추가할 수 있다.
  2. 스택의 맨 아래 요소를 pop 연산으로 제거할 수 있다.
  3. peek 연산을 통해 스택의 맨 위 요소를 확인할 수 없다.
  4. 후입선출(LIFO) 방식으로 동작한다.

 
(2) 다음 중 스택의 활용 사례가 아닌 것은?

  1. 실행 취소(Undo) 기능
  2. 웹 브라우저의 뒤로 가기 기능
  3. 큐(Queue)를 사용한 프로세스 스케줄링
  4. 재귀 함수 호출 스택

 

 

🧩 2. 실전 문제

 
(3) 다음 코드의 실행 결과는?

from collections import deque
stack = deque()
stack.append(10)
stack.append(20)
stack.append(30)
print(stack.pop())
print(stack.pop())
  1. 30 20
  2. 10 20
  3. 20 10
  4. 30 10

 
(4) 다음 코드가 출력할 결과는?

def reverse_string(s):
    stack = list(s)
    reversed_str = ""
    while stack:
        reversed_str += stack.pop()
    return reversed_str

print(reverse_string("hello"))
  1. "ehllo"
  2. "hello"
  3. "olleh"
  4. "holle"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

🏆 정답 및 해설

(1) 정답: 2
✅ 스택의 pop 연산은 항상 맨 위(top) 요소를 제거합니다. 따라서 맨 아래 요소를 직접 제거할 수 없습니다.
(2) 정답: 3
✅ 큐(Queue)는 선입선출(FIFO) 방식이며, 프로세스 스케줄링과 같은 작업에서 주로 사용됩니다.
(3) 정답: 1
✅ append(10) → append(20) → append(30) 순으로 스택에 추가되었으며, pop() 연산을 수행하면 가장 마지막에 추가된 30이 먼저 제거됩니다. 따라서 출력은 30 20이 됩니다.
(4) 정답: 3
✅ 스택을 이용하여 문자열을 뒤집으면 hello가 olleh로 변환됩니다.


 

반응형

댓글