๋ฌธ์
https://www.acmicpc.net/problem/1541
๋ฐฑ์ค ๋ฌธ์ ์ง - 0x11๊ฐ - ๊ทธ๋ฆฌ๋
์๊ณ ๋ฆฌ์ฆ: ๊ทธ๋ฆฌ๋, ๋ฌธ์์ด
ํ์ด
์ธ์ค์ด๋ ์์์ +, -, ๊ทธ๋ฆฌ๊ณ ๊ดํธ๋ฅผ ๊ฐ์ง๊ณ ์์ ๋ง๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ์ธ์ค์ด๋ ๊ดํธ๋ฅผ ๋ชจ๋ ์ง์ ๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ์ธ์ค์ด๋ ๊ดํธ๋ฅผ ์ ์ ํ ์ณ์ ์ด ์์ ๊ฐ์ ์ต์๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค.
๊ดํธ๋ฅผ ์ ์ ํ ์ณ์ ์ด ์์ ๊ฐ์ ์ต์๋ก ๋ง๋๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.์ฒซ์งธ ์ค์ ์์ด ์ฃผ์ด์ง๋ค. ์์ ‘0’~‘9’, ‘+’, ๊ทธ๋ฆฌ๊ณ ‘-’๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ์ฅ ์ฒ์๊ณผ ๋ง์ง๋ง ๋ฌธ์๋ ์ซ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ์ํด์ ๋ ๊ฐ ์ด์์ ์ฐ์ฐ์๊ฐ ๋ํ๋์ง ์๊ณ , 5์๋ฆฌ๋ณด๋ค ๋ง์ด ์ฐ์๋๋ ์ซ์๋ ์๋ค. ์๋ 0์ผ๋ก ์์ํ ์ ์๋ค. ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์์ ๊ธธ์ด๋ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
๊ดํธ๋ฅผ ์ ์ ํ๊ฒ ๋ฃ์ด ์ต์๊ฐ์ผ๋ก ๋ง๋ค์ด์ผํ๋ค. ์ฐ์ฐ์๋ +, - ๋๋ฟ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด - ๊ธฐํธ๊ฐ ๋์ฌ๋๋ง๋ค ๊ดํธ๋ก ๋ฌถ์ด์ค์ ์์๊ฐ์ ์ต๋ํ ํฌ๊ฒ ๋ง๋ค๋ฉด ๋๊ฒ ๋ค.
์์ 1: 55 - 60 + 40 => 55 - (60 + 40)
๋ํ ์ ๋ ฅ ๋ฐ์ดํฐ ์กฐ๊ฑด์ ์ ๋ณด๋ฉด "๊ฐ์ฅ ์ฒ์๊ณผ ๋ง์ง๋ง ์ซ์๋ ์ซ์"๋ผ๊ณ ๋์ด์๋ค.
์ฆ, ์ฒซ๋ฒ์งธ ๊ฐ์ผ๋ก ์์๊ฐ ๋์ฌ ์ผ์ ์๋ค.
๋ฐ๋ผ์ ์
๋ ฅ๋ฐ์ ์์ -๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ๋ฉด ์ฒซ๋ฒ์งธ ์ซ์๋ฅผ ์ ์ธํ ๋๋จธ์ง ์์๋ค์ ๋ชจ๋ ๊ดํธ๋ก ๋ฌถ์ ์ ์๋ ์ซ์๋ค์ด ๋๋ค.
์๋ฅผ๋ค์ด, 30 - 50 - 70 + 10 + 20 - 10 ์ด ์ฃผ์ด์ง๋ค๊ณ ์๊ฐํด๋ณด์.
๋ถ๋ฆฌ ํ์ ๊ฒฐ๊ณผ๋ [30, 50, 70+10+20, 10] ์ด ๋ ๊ฒ์ด๋ค.
์ฒซ๋ฒ์งธ ์ซ์ 30์ ๋ฌด์กฐ๊ฑด ์์์ด๋ฏ๋ก ๊ฒฐ๊ณผ๊ฐ์ ๋ฏธ๋ฆฌ ๋ํด์ค๋ค.
๋๋ฒ์งธ ~ ๋ง์ง๋ง ์์๋ค์ ๋ชจ๋ -() ์์ ๋ค์ด๊ฐ ์ ์๋ ๋ฌถ์๋ค์ด๋ค. ํด๋น ๋ฌถ์์ ์ซ์๋ค์ ๋ชจ๋ ๋ํ๊ณ ์ด ๊ฐ๋งํผ์ ๋นผ์ค๋ค.
์ ์ฒด ์ฝ๋
# ๋ฉ๋ชจ๋ฆฌ: 31120KB / ์๊ฐ: 44ms
expression = input().split("-")
lst = []
for ex in expression:
lst.append(sum(map(int, ex.split("+"))))
ret = lst[0]
for l in lst[1:]:
ret -= l
print(ret)
์ฐธ๊ณ ๋ก ์ธ๋ฑ์ฑ์ด ์๋ ์ฌ๋ผ์ด์ฑ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ์๋ฌ๋ฅผ ๋ฑ์ด๋ด์ง ์๋๋ค.
๋ง์ฝ lst = [30] ์ธ ์ํฉ์ด์ด๋ lst[1:]์ ๋น ๋ฆฌ์คํธ [ ]๋ฅผ ๋ฐํํ๋ค.