[๋ฐฑ์ค] (Swift) 1541๋ฒ - ์์ด๋ฒ๋ฆฐ ๊ดํธ (๊ทธ๋ฆฌ๋)
๊ณต์ค์ ํ๊ฐ ์๊ฐ๋๋ ๋ฌธ์ ๋ฒํธ๋ค,,, 10์ด์๋.. ์จ๋ ์๊ธ ์๋๊ฐ๊ฒ ํ ๋ผ๊ณ ๋ช์ด๋ง์ ๋นจ๋ฆฌ๋งํ๊ณ ์ ํ ๋๊ณ ๊ทธ๋ฌ์๋๋ฐ...
๐ ๋ฌธ์
https://www.acmicpc.net/problem/1541
1541๋ฒ: ์์ด๋ฒ๋ฆฐ ๊ดํธ
์ฒซ์งธ ์ค์ ์์ด ์ฃผ์ด์ง๋ค. ์์ ‘0’~‘9’, ‘+’, ๊ทธ๋ฆฌ๊ณ ‘-’๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ์ฅ ์ฒ์๊ณผ ๋ง์ง๋ง ๋ฌธ์๋ ์ซ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ์ํด์ ๋ ๊ฐ ์ด์์ ์ฐ์ฐ์๊ฐ ๋ํ๋์ง ์๊ณ , 5์๋ฆฌ๋ณด๋ค
www.acmicpc.net
๐ ๋์ ํ์ด
์ฐ์ , ์๊ฐ์ด๊ฐ 2์ด๋ผ์, ์ฌ์ ๋กญ๊ฒ ํ์๋ค. 2์ต๋ฒ์ ์ฐ์ฐ์ด ๋ฐ์ํด๋ ์ข๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ทธ๋ฅ? ์๊ฐํ์ง ์๊ณ ํ์๋ค.
๋ฌธ์ ๋ ์๊ฐ๋ณด๋ค ๊ฐ๋จํ๋ค. ๋ํ๊ธฐ์ ๋นผ๊ธฐ ๋ฐ์ ์๊ธฐ ๋๋ฌธ์, ๋ง์ด๋์คํด์ฃผ๋ ์๊ฐ ๊ฐ์ฅ ์ปค์ง๋ฉด, ๊ฐ์ ์ต์๋ก ์ถ๋ ฅํ ์ ์๋ค. ์ฆ, + ์ฐ์ฐ์ ๋ชจ๋ ์ํํด์ฃผ๊ณ (๋ํด์ ๊ฐ์ฅ ํฌ๊ฒ ๋ง๋ค์ด์ฃผ๊ณ ) - ์ฐ์ฐ์ ์ํํด์ฃผ๋ฉด ๋๋ค! ๊ทธ๋ผ๊ฒฐ๊ตญ ๋นผ๋ ์๊ฐ ์ ์ ์ปค์ง๊ฒ ๋์ ์ต์์ ์๊ฐ ์ถ๋ ฅ๋ ์ ์๋ค.
๐ ์ ๋ต์ฝ๋
๊ตฟ,,
import Foundation
private func solution(_ input: String) -> Int {
let input = input.split(separator: "-").map{ $0 }
var minusArr = [Int]()
for i in 0..<input.count {
if !input[i].contains("+") {
minusArr.append(Int(input[i])!)
continue
}
let temp = input[i].split(separator: "+").map{ Int($0)! }.reduce(0,+)
minusArr.append(temp)
}
if minusArr.count > 1 {
var total = minusArr[0]
for j in 1..<minusArr.count {
total -= minusArr[j]
}
return total
} else {
return minusArr[0]
}
}
let input = readLine()!
print(solution(input))