[๋ฐฑ์ค€/python] 1541๋ฒˆ : ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ

2021. 5. 12. 01:41

๋ฌธ์ œ

์„ธ์ค€์ด๋Š” ์–‘์ˆ˜์™€ +, -, ๊ทธ๋ฆฌ๊ณ  ๊ด„ํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹์„ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ์„ธ์ค€์ด๋Š” ๊ด„ํ˜ธ๋ฅผ ๋ชจ๋‘ ์ง€์› ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ์„ธ์ค€์ด๋Š” ๊ด„ํ˜ธ๋ฅผ ์ ์ ˆํžˆ ์ณ์„œ ์ด ์‹์˜ ๊ฐ’์„ ์ตœ์†Œ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.

๊ด„ํ˜ธ๋ฅผ ์ ์ ˆํžˆ ์ณ์„œ ์ด ์‹์˜ ๊ฐ’์„ ์ตœ์†Œ๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์‹์ด ์ฃผ์–ด์ง„๋‹ค. ์‹์€ ‘0’~‘9’, ‘+’, ๊ทธ๋ฆฌ๊ณ  ‘-’๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ฐ€์žฅ ์ฒ˜์Œ๊ณผ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋Š” ์ˆซ์ž์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฐ์†ํ•ด์„œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ณ , 5์ž๋ฆฌ๋ณด๋‹ค ๋งŽ์ด ์—ฐ์†๋˜๋Š” ์ˆซ์ž๋Š” ์—†๋‹ค. ์ˆ˜๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์‹์˜ ๊ธธ์ด๋Š” 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ •๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ •๋‹ต

import sys
input = sys.stdin.readline

exp = input()
num = ""
sign = "+"
answer = 0

minus = False
for i in exp:
    if i.isdigit():  # ์ˆซ์ž์ผ ๋•Œ
        num += i
    else:           # ์ˆซ์ž ๋
        num = int(num)

        if sign == "-":
            minus = True
            answer -= num

        elif sign == "+":
            if minus == True:   # ๊ด„ํ˜ธ ์•ˆ
                answer -= num
            else:               # ๊ด„ํ˜ธ ๋ฐ–
                answer += num

        sign = i    # + ๋˜๋Š” - ์ €์žฅ
        num = ""    # num ์ดˆ๊ธฐํ™”


print(answer)

์‹์˜ ๊ฐ’์„ ์ตœ์†Œ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์ˆซ์ž๋ฅผ ๋นผ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—

-๊ฐ€ ๋‚˜์™”์„ ๋•Œ ๊ด„ํ˜ธ๊ฐ€ ์‹œ์ž‘๋˜์–ด, ๋‹ค์Œ -๊ฐ€ ๋‚˜์˜ฌ ๋•Œ ๊ด„ํ˜ธ๋ฅผ ๋‹ซ๊ณ  ๋‹ค์‹œ ๊ด„ํ˜ธ๋ฅผ ์—ด์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

-๊ฐ€ ๋‚˜์™”๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐํ˜ธ๋ฅผ ์ €์žฅํ•  sign์„ ๋งŒ๋“ค์–ด ์ดˆ๊ธฐ๊ฐ’์„ +๋กœ ์„ค์ •ํ•ด์ค€๋‹ค.

 

์ž…๋ ฅ๋ฐ›์€ ์‹ exp๋Š” ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆซ์ž๋ฅผ ๋ถ„๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

i๊ฐ€ ์ˆซ์ž์ผ ๋•Œ ๋ฌธ์ž์˜ ํ˜•ํƒœ๋กœ num์— ๋”ํ•˜๊ณ , i๊ฐ€ ๋ฌธ์ž์ผ ๋•Œ num์„ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

 

๊ธฐํ˜ธ๊ฐ€ ์ ์šฉ๋˜๋Š” ์ˆซ์ž๋Š” ๋’ค์— ์˜ค๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐํ˜ธ๋ฅผ sign์— ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ๋‹ค์Œ ๊ธฐํ˜ธ๊ฐ€ ๋‚˜์™”์„ ๋•Œ ์ ์šฉํ•ด์•ผํ•œ๋‹ค.

 

๋งŒ์•ฝ sign์— -๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๋‹ค๋ฉด minus๊ฐ€ ๋‚˜์™”์Œ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด True๋กœ ๋ฐ”๊พธ๊ณ  answer์—์„œ num์„ ๋บ€๋‹ค.

sign์— +๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ์„ ๋•Œ, minus๊ฐ€ True๋ผ๋ฉด ๊ด„ํ˜ธ ์•ˆ์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ answer์—์„œ num์„ ๋บ€๋‹ค.

sign์— +๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ์„ ๋•Œ, minus๊ฐ€ False๋ผ๋ฉด ๊ด„ํ˜ธ ๋ฐ–์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ answer์—์„œ num์„ ๋”ํ•œ๋‹ค.

 

sign์— ๋‹ค์Œ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๊ณ  num์„ ๋นˆ ๋ฌธ์ž์—ด๋กœ ๋‹ค์‹œ ์ดˆ๊ธฐํ™” ํ•ด์ค€๋‹ค.

 

 

 

 

728x90

BELATED ARTICLES

more