π 1935 | νμ νκΈ°μ 2
https://www.acmicpc.net/problem/1935
π‘ Solution
Logic
1. νμνκΈ°μμ ν λλ‘ μ°μ°μ μννλ λ¬Έμ μ΄λ€.
2. λ¨Όμ μνλ²³κ³Ό λ€μ΄μ€λ μ«μλ₯Ό λ§€μΉ μν¨λ€.
3. μ΄ν, νμ νκΈ°μλλ‘ μ°μ°μ μννλ€.
4. νΌμ°μ°μκ° λ€μ΄μ¬ κ²½μ°, μνλ²³μ ν΄λΉνλ μ«μλ₯Ό μ€νμ push νλ€.
5. μ°μ°μκ° λ€μ΄μ¬ κ²½μ°, μ€νμ μλ λ μ°μ°μλ₯Ό κ°μ§κ³ μμ μ°μ°μ μνν ν, κ²°κ³Όλ₯Ό λ€μ μ€νμ pushνλ€.
n = int(input().rstrip())
s = input().rstrip()
num_list = {}
for i in range(1, n+1) :
num_list.update({chr(64 + i) : int(input().rstrip())})
def calculate(s) :
stack = []
for i in range(len(s)) :
if ord('A') <= ord(s[i]) and ord(s[i]) <= ord('Z') :
stack.append(num_list[s[i]])
else :
b = stack.pop()
a = stack.pop()
if s[i] == '+' :
stack.append(a+b)
elif s[i] == '-' :
stack.append(a-b)
elif s[i] == '*' :
stack.append(a*b)
elif s[i] == '/' :
stack.append(a/b)
return float(stack.pop())
result = "{:.2f}".format(calculate(s))
print(result)
βΆ π Note
β μ€λͺ
μμμ nμ리 νμ λ§μΆκΈ°μλ f-string λ°©μκ³Ό format λ°©μμ΄ μλ€.
dictionaryλ₯Ό μ¬μ©νκΈ° λλ¬Έμ κ΅³μ΄ μμ€ν€μ½λλ‘ λΉκ΅νμ§ μκ³ 'in'μ μ¬μ©νλ©΄ λ ν¨μ¨μ μΈ μ½λκ° λ μ μλ€.
β f-string - f"{number:.2f}"
β format - "{:.2f}".format(number)
'μκ³ λ¦¬μ¦ π©π»βπ» > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BAEKJOON] 10808 | μνλ²³ κ°μ (0) | 2024.11.26 |
---|---|
[BAEKJOON] 1918 | νμ νκΈ°λ² (0) | 2024.11.25 |
[BAEKJOON] 17299 | μ€λ±ν°μ (0) | 2024.11.21 |
[BAEKJOON] 17413 | λ¨μ΄ λ€μ§κΈ° 2 (1) | 2024.11.20 |
[BAEKJOON] 10799 | μ λ§λκΈ° (0) | 2024.11.20 |