← 학습 코스

마지막에 넣은 값을 먼저 꺼내기

Python전체 작성형

리스트 끝에 넣고 끝에서 꺼내요

리스트와 함수를 배웠어요. append 는 끝에 값을 추가해요. pop()은 끝의 값을 제거하고 그 값을 반환해요.

stack = []
stack.append(4)
stack.append(7)
taken = stack.pop()

taken은 7이고 stack에는 [4]가 남아요. 마지막에 넣은 것을 먼저 꺼내는 순서를 스택이라고 해요. 그림에서 꺼내기 전후의 차이를 확인해요.

stack =[4,7]에서 pop()이 마지막 값 7을 반환하고 stack =[4]를 남기는 관계

빈 상태에서는 꺼내지 않아요

빈 리스트에서 pop 하면 꺼낼 값이 없어 오류가 나요. len(stack) > 0을 먼저 확인해요. pop()은 리스트를 바꾸는 동시에 꺼낸 값을 주므로 나중에 그 값을 다시 쓸 수 있어요.

예제에서 7을 꺼낸 뒤 4를 추가하면 stack은 [4, 4]예요. 중복 값도 서로 다른 칸이에요. 아래 과제는 양수 입력이면 넣고 0이면 마지막 값을 꺼내요. 꺼낸 값은 결과 합계에 포함하지 않아요. 모든 명령 후 남은 리스트만 순회해요.

직접 풀어봐요

명령을 순서대로 처리해요. 양수값은스택끝에 넣고, 0은 끝의 값을 하나 꺼내요. 빈스택에서 0이 오면 아무 일도 하지 않아요. 마지막에 남은 값의 합계를 출력해요.

첫 줄 명령 수 m(0100), 이후 m 줄에 명령(01000)이에요. 출력은 최종 합계예요.

예 시 1: 명령[4, 7, 0, 2] → 6. 7을 꺼내고 4·2가 남아요. 예 시 2: 명령[3, 0, 9] → 9예요.

예시 입력

4
4
7
0
2

예상 결과

6

예시 입력

3
3
0
9

예상 결과

9
핵심 개념
  • stack-queue: append와 pop으로 리스트 끝에서 넣고 꺼내는 스택 순서를 구현하고 빈 상태를 확인해요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기