๐Ÿงฉ Algorithm/[BOJ] Silver

BOJ 10773๋ฒˆ : ์ œ๋กœ (Python/Silver 4)

devCloud 2023. 5. 2. 19:12
728x90
 

10773๋ฒˆ: ์ œ๋กœ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ 100,000) ์ดํ›„ K๊ฐœ์˜ ์ค„์— ์ •์ˆ˜๊ฐ€ 1๊ฐœ์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ •์ˆ˜๋Š” 0์—์„œ 1,000,000 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ •์ˆ˜๊ฐ€ "0" ์ผ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ณ , ์•„๋‹ ๊ฒฝ

www.acmicpc.net

๋ฌธ์ œ

์žฌํ˜„์ด๋Š” ์žฌ๋ฏผ์ด๋ฅผ ๋„์™€์„œ ๋ˆ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์ธ๋ฐ, ์• ์„ํ•˜๊ฒŒ๋„ ํ•ญ์ƒ ์ •์‹ ์—†๋Š” ์žฌํ˜„์ด๋Š” ๋ˆ์„ ์‹ค์ˆ˜๋กœ ์ž˜๋ชป ๋ถ€๋ฅด๋Š” ์‚ฌ๊ณ ๋ฅผ ์น˜๊ธฐ ์ผ์‘ค์˜€๋‹ค. ์žฌํ˜„์ด๋Š” ์ž˜๋ชป๋œ ์ˆ˜๋ฅผ ๋ถ€๋ฅผ ๋•Œ๋งˆ๋‹ค 0์„ ์™ธ์ณ์„œ, ๊ฐ€์žฅ ์ตœ๊ทผ์— ์žฌ๋ฏผ์ด๊ฐ€ ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ฒŒ ์‹œํ‚จ๋‹ค. ์žฌ๋ฏผ์ด๋Š” ์ด๋ ‡๊ฒŒ ๋ชจ๋“  ์ˆ˜๋ฅผ ๋ฐ›์•„ ์ ์€ ํ›„ ๊ทธ ์ˆ˜์˜ ํ•ฉ์„ ์•Œ๊ณ  ์‹ถ์–ด ํ•œ๋‹ค. 

 

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ 100,000) ์ดํ›„ K๊ฐœ์˜ ์ค„์— ์ •์ˆ˜๊ฐ€ 1๊ฐœ์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ •์ˆ˜๋Š” 0์—์„œ 1,000,000 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ •์ˆ˜๊ฐ€ "0" ์ผ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ณ , ์•„๋‹ ๊ฒฝ์šฐ ํ•ด๋‹น ์ˆ˜๋ฅผ ์“ด๋‹ค. ์ •์ˆ˜๊ฐ€ "0"์ผ ๊ฒฝ์šฐ์— ์ง€์šธ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์žˆ์Œ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ถœ๋ ฅ

์žฌ๋ฏผ์ด๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ ์ ์–ด ๋‚ธ ์ˆ˜์˜ ํ•ฉ์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ์ ์–ด๋‚ธ ์ˆ˜์˜ ํ•ฉ์€ 2^(31-1)๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.


์˜ˆ์ œ ์ž…๋ ฅ

4
3
0
4
0

์˜ˆ์ œ ์ถœ๋ ฅ

0

ํ’€์ด

 

์Šคํƒ ๊ธฐ๋ณธ ์—ฐ์‚ฐ

โ–ถ push() : ์Šคํƒ์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

โ–ถ pop() : ์Šคํƒ์— ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ณ , ๊ทธ ์›์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โ–ถ peek() : ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ , ๊ทธ ์›์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โ–ถ empty() : ์Šคํƒ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด 1์„ ๋ฐ˜ํ™˜, ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ํŒŒ์ด์ฌ์—์„œ๋Š” ์Šคํƒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์•„์„œ, ๋ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ importํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

Solution

from collections import deque
import sys
input = sys.stdin.readline

stack = deque() #๋ฑ ์ƒ์„ฑ
for _ in range(int(input())):
    k = int(input())
    if k == 0:
        stack.pop()
    else:
        stack.append(k)
print(sum(stack))
728x90