[ 2023-03-14 ๐ŸŒฑ TIL ]

Burkeyยท2023๋…„ 3์›” 14์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
58/157

๋ฐฑ์ค€ 1935๋ฒˆ

์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ํ›„์œ„ ํ‘œ๊ธฐ์‹์„ ์ฃผ์–ด์ง„ ์ž…๋ ฅ๊ฐ’์— ๋Œ€์ž…ํ•˜์—ฌ ๋‹ต์„ ๋‚ด๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

import sys

n = int(input()) # ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์ˆ˜์˜ ๊ฐ’
s = input().strip() # ํ›„์œ„ ํ‘œ๊ธฐ์‹์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š”๋‹ค
val = []

for _ in range(n):
    val.append(int(input()))

alphabet = {}
index1 = 0
for i in range(len(s)):
    ascii_s = ord(s[i]) # ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋Œ€๋ฌธ์ž์— ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’ ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅ
    if 65 <= ascii_s and ascii_s <= 90: 
        if s[i] not in alphabet:
            alphabet[s[i]] = val[index1] 
            index1 += 1

val_li = []
index2 = 0

for i in range(len(s)):
    if s[i] in alphabet: # ๋™์ผํ•œ ๊ฐ’์ด์—ฌ๋„ ๋ฐฐ์—ด์— ๋„ฃ๋Š”๋‹ค.
        val_li.append(alphabet[s[i]]) 
    else: # ์—ฐ์‚ฐ์ž๊ฐ€ ๋“ฑ์žฅํ–ˆ์„ ๊ฒฝ์šฐ
    	# ์—ฐ์‚ฐ์ž ์ด์ „์˜ ๋‘ ๊ฐœ์˜ ๊ฐ’์„ ์ถ”์ถœํ•˜์—ฌ ๊ณ„์‚ฐํ›„ ๋‹ค์‹œ ๋ฐฐ์—ด์— ๋„ฃ๋Š”๋‹ค -> stack
        last = val_li.pop() 
        first = val_li.pop()
        # ์ˆœ์„œ ์ค‘์š” ๋‚˜๋ˆ„๊ธฐ๋‚˜ ๋บ„์…ˆ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ˆœ์„œ์— ์˜ํ–ฅ์„ ๋ฐ›๊ธฐ์—
        value = 0
        if s[i] == '-':
            value = first - last
        elif s[i] == '*':
            value = first * last
        elif s[i] == '/':
            value = first / last
        elif s[i] == '+':
            value = first + last
        val_li.append(value)
        
print('{:.2f}'.format(val_li[0]))

์ž…๋ ฅ์œผ๋กœ AA+A+ ๊ฐ™์ด ํ•œ๊ฐ€์ง€์˜ ๊ฐ’์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ํ›„์œ„ ํ‘œ๊ธฐ์‹์ด ๋“ค์–ด์˜ฌ ๋•Œ๊ฐ€ ์žˆ์–ด์„œ

if s[i] in alphabet: # ๋™์ผํ•œ ๊ฐ’์ด์—ฌ๋„ ๋ฐฐ์—ด์— ๋„ฃ๋Š”๋‹ค.
        val_li.append(alphabet[s[i]]) 

๊ฐ™์€ ๋ถ€๋ถ„์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋งŒ์•ฝ A๊ฐ€ 1์ธ ์ž…๋ ฅ๊ฐ’์ด๋ผ๊ณ  ํ–ˆ์„ ๋•Œ
๋ฐฐ์—ด์— ์ฒ˜์Œ ์—ฐ์‚ฐ์ž๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€๋Š” [ 1, 1 ]๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฐ์‚ฐ์ž ๋‚˜์˜ค๊ณ  ๋์— 2๊ฐœ ๊ฐ’์„ ๊บผ๋‚ด ๊ณ„์‚ฐ ํ›„ ๋‹ค์‹œ ๋ฐฐ์—ด์— ๋„ฃ์–ด [2] ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ์—ฐ์‚ฌ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ [2,1]์ด ๋“ค์–ด๊ฐ€ ์žˆ๊ณ  ๋‹ค์‹œ ์œ„์™€ ๊ฐ™์€ ์ผ์„ ๋‹ค์‹œ ์ง„ํ–‰ํ•˜์—ฌ ๋งˆ์ง€๋ง‰์— ๋ฐฐ์—ด์—[3]์ด ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€