๐Ÿงฉ Algorithm/[BOJ] Silver

BOJ 1541๋ฒˆ : ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ (Python/Silver 2)

devCloud 2023. 4. 4. 20:00
728x90
 

1541๋ฒˆ: ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ

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

www.acmicpc.net

๋ฌธ์ œ

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

 

์ž…๋ ฅ

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

 

์ถœ๋ ฅ

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


์˜ˆ์ œ ์ž…๋ ฅ

55-50+40

์˜ˆ์ œ ์ถœ๋ ฅ

-35

๋ฌธ์ œ ์„ค๋ช…

์ฃผ์–ด์ง„ ์‹์— ๊ด„ํ˜ธ๋ฅผ ์ณ์„œ ๊ฒฐ๊ณผ๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๊ฒŒ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.

 

ํ’€์ด

๋งŒ์ผ ์ž…๋ ฅ์ด 10-20+30-40์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. 

10-20+30-40 = - 20


+๋ฅผ ์ตœ๋Œ€๋กœ ๋งŒ๋“ค๊ณ  ์•ž์— -๋ฅผ ๋ถ™์ด๋ฉด ์ตœ์†Ÿ๊ฐ’์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

10 - (20 + 30 ) - 40 = - 80


๋”ฐ๋ผ์„œ ๋จผ์ € '-'๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๊ตฌ๋ถ„ํ•œ๋‹ค.  

split()์„ ์จ์„œ num์— ์ €์žฅํ•œ ๊ฒฐ๊ณผ์ด๋‹ค.


์ฒซ ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋Š” -์ด๋“  +์ด๋“  ๋ฌด์กฐ๊ฑด ๊ฐ’์— ํฌํ•จ๋˜๋ฏ€๋กœ ์ฒซ ๋ฒˆ์งธ ์ˆ˜๋Š” ๋จผ์ € ๋”ฐ๋กœ ๋”ํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ถ€ํ„ฐ๋Š” '+'๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ทธ ์ˆ˜๋“ค์„ ๋นผ์ฃผ๋ฉด ๋œ๋‹ค.

 

 

์ฃผ์˜ํ•  ์ : split('-')๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด๋„ '-'๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ๋œ ๊ฒƒ์ด ์•„๋‹Œ '1', '0', '2' - - - ์ด๋ ‡๊ฒŒ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. split(' ')์„ ์‚ฌ์šฉํ•œ ์ด์œ ๊ฐ€ ์ด์™€ ๊ฐ™๋‹ค.

Solution

import sys
input = sys.stdin.readline

num = input().split('-')
ans = 0

for i in num[0].split('+'): 
    ans += int(i)
for i in num[1:]:
    for j in i.split('+'):
        ans -= int(j)

print(ans)

 

728x90