๐Ÿ‘ฉ๐Ÿป‍๐ŸŒพ

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

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๋ฐฑ์ค€(BOJ)

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

์ฅฌ์Šค์ด 2023. 3. 9. 18:29
728x90

1๏ธโƒฃ๋ฌธ์ œ ์„ค๋ช…

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

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

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

2๏ธโƒฃ์ž…๋ ฅ

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

3๏ธโƒฃ์ถœ๋ ฅ

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

 


๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป์ž‘์„ฑํ•œ ์ฝ”๋“œ

import sys

input = sys.stdin.readline

A = list(map(str, input().split("-")))
ans = 0


def Cal(s):
    tot = 0
    temp = str(s).split("+")
    for i in temp:
        tot += int(i)
    return tot


for i in range(len(A)):
    temp = Cal(A[i])
    if i == 0:
        ans += temp
    else:
        ans -= temp

print(ans)

 

๐Ÿ’ก์ฝ”๋“œ ์„ค๋ช…

์ˆ˜์‹์˜ ๊ฐ’์„ ์ตœ์†Œ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ€๋Šฅํ•œ ํฐ ์ˆ˜๋ฅผ ๋นผ์•ผํ•œ๋‹ค. 

 

๋ฌธ์ œ์—์„œ ์ˆ˜์‹์ด ' + ' ์™€ ' - ' ๋กœ๋งŒ ์ด๋ค„์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ํ•˜๊ธฐ์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ด„ํ˜ธ์ณ์„œ ๊ทธ ๊ฐ’๋“ค์„ ๋ชจ๋‘ ๋นผ๋ฉด ๋œ๋‹ค.

 

์šฐ์„  ๋“ค์–ด์˜จ ๋ฌธ์ž์—ด์„ ' - ' ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ชผ๊ฐ ๋‹ค.

 

๊ทธ๋Ÿฐ ๋‹ค์Œ, Cal ํ•จ์ˆ˜์—์„œ ์ชผ๊ฐœ์ง„ ๋ฌธ์ž์—ด๋“ค์€ ' + ' ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ชผ๊ฐœ๊ณ , ์ชผ๊ฐœ์„œ ์–ป์–ด์ง„ ๋ฐ์ดํ„ฐ๋“ค์„ ํ•ฉํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๊ฐ’๋งŒ ans์— ๋”ํ•ด์ฃผ๊ณ  ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ans์—์„œ ๋นผ์ค€๋‹ค.

 

ex) input : 420-30+150+32-5+16 

      A = ['420', '30+150+32', '5+16']

      temp = ['420']

                  ['30', '150', '32']

                  ['5', '16']

728x90
Comments