ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๐ฉ stack, ํ์ํ๊ธฐ์(postfix)
์ฝ๋
T = 10
for tc in range(1, T+1):
N = int(input()) # ๋ฌธ์์ด๊ธธ์ด
S = input() # input ๋ฌธ์์ด
stack = []
postfix = '' # ํ์ํ๊ธฐ์ ๋ฌธ์์ด
cal = [] # ๊ณ์ฐํ ์คํ
# 1. ํ์ํ๊ธฐ์์ผ๋ก ๋ณํ
for i in S:
# ์คํ ๋น์์ผ๋ฉด ์ฐ์ฐ์ ๋ฃ๊ณ
if not stack and i == '+':
stack.append(i)
# ์คํ์ ์ด๋ฏธ +๊ฐ ์์ผ๋ฉด ๋นผ๊ณ ์ถ๊ฐ
elif stack and i == '+':
postfix += stack.pop()
stack.append(i)
# ์ซ์์ด๋ฉด ๊ทธ๋ฅ ์ถ๊ฐ
else:
postfix += i
# ์คํ์ ๋จ์์๋ ๋ง์ง๋ง + ๋นผ์ค์ผ๋์ for~else ๋ก ์ฒ๋ฆฌํจ
else:
postfix += stack.pop()
# 2. ๊ฒฐ๊ณผ๊ฐ ๊ณ์ฐ
for i in postfix:
# ์ซ์์ด๋ฉด ์คํ์ ๋ฃ๊ณ
if i != '+':
cal.append(int(i))
# ์ฐ์ฐ์์ด๋ฉด ์คํ์ ์ซ์ ๋๊ฐ ๊บผ๋ด์ ๋ํ๊ณ ๋ค์ ๋ฃ์
elif i == '+':
num2 = cal.pop()
num1 = cal.pop()
cal.append(num1+num2)
print("#{} {}".format(tc, *cal))
'algorithm > swea' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swea] 4047. ์์ค์ด์ ์นด๋ ์นด์ดํ / python ํ์ด์ฌ (0) | 2021.04.09 |
---|---|
[swea] 1974. ์ค๋์ฟ ๊ฒ์ฆ / python ํ์ด์ฌ (0) | 2021.04.09 |
[swea] 4866. ๊ดํธ๊ฒ์ฌ / python ํ์ด์ฌ (0) | 2021.04.09 |
[swea] 1206. View / python ํ์ด์ฌ (0) | 2021.04.09 |
[swea] 1208. Flatten / python ํ์ด์ฌ (0) | 2021.04.09 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
TAG
- dp
- merge์๋ฌ
- ์ผ์ฑ๊ธฐ์ถ
- ์์ด๋๋ง์๊ธฐ
- 20056 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ
- Python
- ๊ธฐ์ง๊ตญ์ค์น
- BFS
- swea
- 2579 ๊ณ๋จ์ค๋ฅด๊ธฐ
- 21609 ์์ด ์คํ๊ต
- ํ์ด์ฌ
- merge ์๋ฌ
- react
- 2018 ์นด์นด์ค ๊ณต์ฑ
- ๋ธ๋ฃจํธํฌ์ค
- 17406 ๋ฐฐ์ด๋๋ฆฌ๊ธฐ4
- dfs
- ๋ณด์์ผํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐฑ์ค
- ์ผ์ฑ์ฝํ
- ์๊ณ ๋ฆฌ์ฆ
- git ๋ฏธ๋ฌ๋ง
- 20057 ๋ง๋ฒ์ฌ ์์ด์ ํ ๋ค์ด๋
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
- Total
- Today
- Yesterday
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ