👩‍💻 알고리즘/🐢 PYTHON

[스택 예제] 백준 10773번

오브 🧙‍♂️ 2024. 7. 7. 13:25

https://www.acmicpc.net/problem/10773

 

문제 : 

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000)

이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다.

정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다.

 

생각한 솔루션 :

들어오는 수를 PUSH로 리스트에 받고, 0이 입력되면 POP. 최종 리스트에 있는 수를 모두 더한다.

k = int(input())
stack = []

for i in range(k):
  num = int(input())
  if num ==0:
    stack.pop()
  else:
    stack.append()

print(sum(stack))

 

'👩‍💻 알고리즘 > 🐢 PYTHON' 카테고리의 다른 글

[스택 예제] 백준 10828번  (0) 2024.07.09
[스택 예제] 백준 9012번  (0) 2024.07.07
배열을 numpy로 변환  (0) 2023.09.19
arange 함수  (0) 2023.09.19
온도 변환  (0) 2023.09.16