๋ฌธ์ ์ค๋ช
์ธ์ค์ด๋ ์์์ +, -, ๊ทธ๋ฆฌ๊ณ ๊ดํธ๋ฅผ ๊ฐ์ง๊ณ ์์ ๋ง๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ์ธ์ค์ด๋ ๊ดํธ๋ฅผ ๋ชจ๋ ์ง์ ๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ์ธ์ค์ด๋ ๊ดํธ๋ฅผ ์ ์ ํ ์ณ์ ์ด ์์ ๊ฐ์ ์ต์๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค.
๊ดํธ๋ฅผ ์ ์ ํ ์ณ์ ์ด ์์ ๊ฐ์ ์ต์๋ก ๋ง๋๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ด ์ฃผ์ด์ง๋ค. ์์ ‘0’~‘9’, ‘+’, ๊ทธ๋ฆฌ๊ณ ‘-’๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ์ฅ ์ฒ์๊ณผ ๋ง์ง๋ง ๋ฌธ์๋ ์ซ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ์ํด์ ๋ ๊ฐ ์ด์์ ์ฐ์ฐ์๊ฐ ๋ํ๋์ง ์๊ณ , 5์๋ฆฌ๋ณด๋ค ๋ง์ด ์ฐ์๋๋ ์ซ์๋ ์๋ค. ์๋ 0์ผ๋ก ์์ํ ์ ์๋ค. ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์์ ๊ธธ์ด๋ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ ๋ต์ ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์์
์ ๋ ฅ
55-50+40
์ถ๋ ฅ
-35
๋ด ๋ฌธ์ ํ์ด
import Foundation
var input = readLine()!.split(separator: "-").map({String($0)}) // "-" ๊ธฐ์ค์ผ๋ก ๋๋ ๋ฐฐ์ด ์์ฑ
var sum = 0
var tmp = 0
for i in 0..<input.count {
let n = input[i].split(separator: "+").map({Int(String($0))!}) // "+"๋ก ๋ค์ ํ ๋ฒ ๋๋๊ธฐ
for j in n { tmp += j } // "+"๋ก ๋๋ ๋ฐฐ์ด์ ๋ชจ๋ ์์ ๋ํ๊ธฐ
if i == 0 { sum += tmp } // ์ฒซ ๋ฒ์งธ ์์์ ๊ฒฝ์ฐ์๋ง sum์ ๋ํด์ฃผ๊ธฐ
else { sum -= tmp } // ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ ์ธ, "-"๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋๊ฒ์ด๊ธฐ ๋๋ฌธ์ sum์์ ๋นผ์ฃผ๊ธฐ
tmp = 0 // tmp ์ด๊ธฐํ
}
print(sum)
๐ ๊ดํธ๋ ๋ฌด์กฐ๊ฑด "-" ๋ค๋ถํฐ ๋ค์ "-"๊ฐ ๋์ค๊ธฐ ์ ๊น์ง ๋ฌถ์ด์ค์ผ ์ต์๊ฐ์ ๊ตฌํ ์ ์๋ค๋ ์ฌ์ค์ด ํฌ์ธํธ!
์๋ฅผ๋ค์ด, 55-50+40 ์ ๊ฒฝ์ฐ 55-(50+40) ์ด๋ ๊ฒ - ๋ค์ ์ซ์๋ค์ ๋ชจ๋ ๋ํด์ ๋นผ์ฃผ๋ฉด ์ต์๊ฐ,,!
- "-"๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ดํธ๋ฅผ ๋ฃ์ด์ค ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ์ฐ์ "-"๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ input ๋ฐฐ์ด์ ์์ฑํ๋ค.
- ๊ทธ๋ฆฌ๊ณ input ๋ฐฐ์ด์ ์์๋ง๋ค "+"๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค์ ๋๋ ๋ชจ๋ ์์๋ฅผ Int๋ก ํ๋ณํํ์ฌ ๋ํ๋ค.
- ์ฒซ "-"๊ฐ ๋์ค๊ธฐ ์ ๊น์ง ๋์จ ์ซ์๋ค์ sum์ ๋ํด์ฃผ๊ณ ,
"-"๊ฐ ํ ๋ฒ์ด๋ผ๋ ๋์จ ์ดํ์๋ ๊ณ์ ๋ํ ์๋ค์ sum์์ ๋นผ์ฃผ๋ ๊ฒ์ ๋ฐ๋ณตํ๋ค.
๐ก ํผ๋๋ฐฑ
- ๊ดํธ๋ฅผ ๋ฃ์ด์ค ์์น๋ง ํ์ธํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค.
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ์ ๋ฌถ๊ธฐ BOJ #1744 (0) | 2021.08.19 |
---|---|
[Swift Algorithm] ๊ฒ์์ ๋ง๋ ๋์ค์ด BOJ #2847 (0) | 2021.08.19 |
[Swift Algorithm] ATM BOJ #11399 (0) | 2021.08.18 |
[Swift Algorithm] ๋ณด๋ฌผ BOJ #1026 (0) | 2021.08.18 |
[Swift Algorithm] ๋กํ BOJ #2217 (0) | 2021.08.18 |
๋๊ธ