https://www.acmicpc.net/problem/1935
โจ ๋ฌธ์
- ํ์ ํ๊ธฐ์๊ณผ ๊ฐ ํผ์ฐ์ฐ์์ ๋์ํ๋ ๊ฐ๋ค์ด ์ฃผ์ด์ ธ ์์ ๋, ๊ทธ ์์ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
โจ ์ ๊ทผ๋ฐฉ๋ฒ
- stack์ ์ด์ฉํ์ฌ ํผ์ฐ์ฐ์๋ stack์ ์ ์ฅํด์ฃผ๊ณ , ์ฐ์ฐ์๋ฅผ ๋ง๋ฌ์ ๊ฒฝ์ฐ์๋ stack์์ ๊ฐ์ popํด์ ๊ณ์ฐํด์ค ๋ค ๋ค์ stack์ popํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์๋ค.
- ๋ค๋ง ๋ฌธ์ ์ ์กฐ๊ฑด์ด ๋๋ ทํ์ง ์์ ์์ธ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ ๋งคํ๋ค๊ณ ๋๊ปด์ก๋ค.
โจ ํ์ ํ๊ธฐ๋ฒ
- ์ด ๋ฌธ์ ๋ ํ์ ํ๊ธฐ๋ฒ์ ์์์ผ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ๋ช๋ ์ ์๋ฃ๊ตฌ์กฐ ์๊ฐ์ ํ์ ํ๊ธฐ๋ฒ์ ๋ฐฐ์ ์ง๋ง ๋ง์ ๋ค์ ๋ณด๋ ์ ๊ธฐ์ต์ด ๋์ง ์์๊ธฐ์ ๋ณต์ต์ ํด๋ณด์ ๐
- ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ๋ณด๋ ์ํ์ ํํ์ด๋ ๊ณ์ฐ์ ์ํ ํ๊ธฐ๋ฒ์ ์ค์ ํ๊ธฐ๋ฒ์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ๋ค์ด (3+4) X 5์ ๊ฐ์ ํํ์ด ์ค์ ํํ๋ฒ์ด๋ค.
- ํ์ ํ๊ธฐ๋ฒ์ ์ค์ ํ๊ธฐ๋ฒ์ฒ๋ผ ์ํ ๊ณ์ฐ์ ์ํ ํ๊ธฐ๋ฒ ์ค ํ๋๋ก ๊ดํธ์ ์ฌ์ฉ์ ์ต์ํํ๊ณ ๊ณ์ฐ ์ฐ์ ์์๋ฅผ ๋ช ํํ๊ฒ ํํํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
- (3+4) X 5๋ฅผ ํ์ ํ๊ธฐ๋ฒ์ผ๋ก ๋ฐ๊พธ๋ฉด 34+5X์ฒ๋ผ ๋ํ๋ผ ์ ์๋ค.
- ์ด๋ ๊ณ์ฐ ์์๋ ์ฐ์ฐ์๊ฐ ๋์ค๋ ๋๋ก ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ์์๋๋ก ๊ณ์ฐ์ ํ๊ฒ ๋๋ค. ์์ ์์์์๋ ๋จผ์ 3๊ณผ 4๋ฅผ ๋ํ ํ์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ 5์ ๊ณฑํ๊ฒ ๋๋ค.
- ์ด๋ฅผ stack์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ์ ์ ๋ชฉํ์ฌ ์ค๋ช ํ๋ฉด ํ์ ํ๊ธฐ๋ฒ์์ ์ซ์๋ฅผ ๋ง๋๋ฉด stack์ append ํด์ฃผ๊ณ ์ฐ์ฐ์๋ฅผ ๋ง๋๋ฉด stack์์ ์ซ์ ๋ ๊ฐ๋ฅผ popํ๋ค stack์ ๋จผ์ ๋ค์ด๊ฐ๋ ์์๋ฅผ ์ผ์ชฝ ๊ธฐ์ค, stack์ ๋ฆ๊ฒ ๋ค์ด๊ฐ๋ ์์๋ฅผ ์ค๋ฅธ์ชฝ์ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐํ๊ณ ๋ค์ stack์ ์ซ์๋ฅผ appendํด์ฃผ๋ฉด ๋๋ค.
- 3๊ณผ 4๋ฅผ ์๊ฐํด๋ณด๋ฉด ์คํ์๋ 3์ด ๋จผ์ ๋ค์ด๊ฐ๊ณ 4๊ฐ ๋์ค์ ๋ค์ด๊ฐ ๊ฒ์ด๋ค. ์ด๋ ๊ณ์ฐ์ 3+4์ ์์๋ก ์ด๋ฃจ์ด์ง๋ค. ๋ง์ ์ด๋ ๋บ์ , ๊ณฑ์ ์ ์๊ด์ด ์์ ์ ์์ง๋ง ๋๋ ๋๋ ์์๊ฐ ์ค์ํ๋ฏ๋ก ์ ์ํ์!
โจ ์ฝ๋
N = int(input())
case = list(str(input()))
alpha2num = []
dict = {}
for i in range(N):
dict[chr(i+65)] = int(input())
stack = []
temp = 0
for item in case :
if item.isalpha():
stack.append(item)
else :
if len(stack)==0 :
print(0)
break
else :
y = stack.pop()
if y in dict :
y = dict[y]
x = stack.pop()
if x in dict :
x = dict[x]
if item == '+':
stack.append(x+y)
elif item == '-':
stack.append(x-y)
elif item == '*':
stack.append(x*y)
elif item == '/':
stack.append(x/y)
print("{:.2f}".format(stack.pop()))
'์๊ณ ๋ฆฌ์ฆ ๐ฅ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2493๋ฒ : ํ(G5) (0) | 2024.01.04 |
---|---|
๋ฐฑ์ค 1158๋ฒ : ์์ธํธ์ค ๋ฌธ์ (S4) (0) | 2023.12.29 |
๋ฐฑ์ค 2346๋ฒ : ํ์ ํฐ๋จ๋ฆฌ๊ธฐ(S3) (0) | 2023.12.29 |
๋ฐฑ์ค 10828๋ฒ : ์คํ(S4) (0) | 2023.12.25 |
๋ฐฑ์ค 2164๋ฒ: ์นด๋2(S4) (2) | 2023.12.25 |