์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ”ฅ/๋ฐฑ์ค€

๋ฐฑ์ค€ 1935๋ฒˆ: ํ›„์œ„ ํ‘œ๊ธฐ์‹2(S3)

23.8 2023. 12. 29. 21:02
๋ฐ˜์‘ํ˜•

 

https://www.acmicpc.net/problem/1935

 

1935๋ฒˆ: ํ›„์œ„ ํ‘œ๊ธฐ์‹2

์ฒซ์งธ ์ค„์— ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐœ์ˆ˜(1 ≤ N ≤ 26) ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘˜์งธ ์ค„์—๋Š” ํ›„์œ„ ํ‘œ๊ธฐ์‹์ด ์ฃผ์–ด์ง„๋‹ค. (์—ฌ๊ธฐ์„œ ํ”ผ์—ฐ์‚ฐ์ž๋Š” A~Z์˜ ์˜๋Œ€๋ฌธ์ž์ด๋ฉฐ, A๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ N๊ฐœ์˜ ์˜๋Œ€๋ฌธ์ž๋งŒ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ธธ์ด

www.acmicpc.net

 

โœจ ๋ฌธ์ œ

 

- ํ›„์œ„ ํ‘œ๊ธฐ์‹๊ณผ ๊ฐ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์‘ํ•˜๋Š” ๊ฐ’๋“ค์ด ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ, ๊ทธ ์‹์„ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

 

โœจ ์ ‘๊ทผ๋ฐฉ๋ฒ•

 

- 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()))
728x90
๋ฐ˜์‘ํ˜•