λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
CodingTest

[Python]λ°±μ€€ 1935 ::ν›„μœ„ν‘œκΈ°μ‹

by λ„μΊλ¦¬πŸ± 2021. 5. 12.
λ°˜μ‘ν˜•

뭘 μ‚¬μš©? μŠ€νƒ/λ”•μ…”λ„ˆλ¦¬

 

풀이.μ–΄λ–»κ²Œ μ ‘κ·Ό ν•˜κ³  μ–΄λ–€ 것이 μ€‘μš”ν–ˆλ‚˜?

숫자면 μŠ€νƒμ— λ„£κ³  μ—°μ‚°μžκ°€ λ‚˜μ˜€λ©΄ λ°”λ‘œ 뒀에 두가지 값을 λΉΌμ„œ μ—°μ‚° ν›„ 연산을 마친 값을 μŠ€νƒμ— λ‹€μ‹œ λ„£μ–΄λ‘”λ‹€.

μ € λ§ˆμ§€λ§‰ 연산이 λλ‚˜λ©΄ μŠ€νƒμ—λŠ” κ²°κ³Ό κ°’ ν•˜λ‚˜λ§Œ 남아 있게 될 κ±°κ³ , 그게 값이닀.

μ•ŒνŒŒλ²³μ— λ”°λ₯Έ 값을 μ–΄λ–»κ²Œ 처리 ν•΄μ•Όν• κΉŒ?λ”•μ…”λ„ˆλ¦¬..?!

λ”•μ…”λ„ˆλ¦¬λ‘œ μ•„μŠ€ν‚€ κ°’μœΌλ‘œ (μ°¨λ‘€λŒ€λ‘œ μ•ŒνŒŒλ²³μ΄ λ“€μ–΄μ˜¨λ‹€κ³  ν–ˆκΈ° λ•Œλ¬Έμ—) λ§Œλ“€μ–΄μ„œ μŠ€νƒμ— μ‹€μ œλ‘œ 넣을 값은 맨처음 μž…λ ₯ 값에 μ•ŒνŒŒλ²³μ— ν•΄λ‹Ήν•˜λŠ” value κ°’μœΌλ‘œ ν–ˆλ‹€.

 

κ΅¬ν˜„ μ½”λ“œ

n = int(input())

string = input()
stk_1 = []

dict_real_num={}

for i in range(n):
    dict_real_num[chr(65+i)] = int(input())
        

for i in range(len(string)):
    
    value = string[i]
    
    if(value == '*'):
        a = stk_1.pop(-1)
        b = stk_1.pop(-1)
        stk_1.append(a*b)
    
    elif(value == '/'):
        a = stk_1.pop(-1)
        b = stk_1.pop(-1)
        stk_1.append(b/a)
    
    elif(value == '+'):
        a = stk_1.pop(-1)
        b = stk_1.pop(-1)
        stk_1.append(a+b)
    
    elif(value == '-'):
        a = stk_1.pop(-1)
        b = stk_1.pop(-1)
        stk_1.append(b-a)
    
    else:
        real_num = dict_real_num[value]
        stk_1.append(real_num)
         
        

print("%.2f"%stk_1[0])

 

 

 

 

λ°˜μ‘ν˜•

λŒ“κΈ€