๋ฐฑ์ค€ - ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ

2022. 10. 23. 13:06ใ†Algorithm

๋ฐฑ์ค€ - ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

https://www.acmicpc.net/problem/1541

 

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

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

www.acmicpc.net

 

 ๋‚˜์˜ ํ’€์ด

 

-์•ž์— ๊ด„ํ˜ธ๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ๊ทธ ๋’ค์— -๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๊ด„ํ˜ธ๋ฅผ ๋‹ซ๋Š”๊ฒŒ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ์€ ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ง‰์ƒ ๊ตฌํ˜„ํ•˜๋ ค๊ณ ํ•˜๋‹ˆ ๋ง‰ํ˜€์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๊ณ  ์ฐธ๊ณ ํ–ˆ๋‹ค.

 

๊ด„ํ˜ธ๋ฅผ ์ง์ ‘ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ ์ด๋ณด๋‹ค๋Š” ๊ด„ํ˜ธ๋ฅผ ๋„ฃ์–ด์•ผํ•˜๋Š” ๊ณณ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๋นผ์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์˜€๋‹ค.

์ฒซ๋ฒˆ์งธ ๊ฐ’์€ ๋นผ์ง€์•Š๊ณ  ๋”ํ•ด์ฃผ๋Š”๋ฐ "๊ฐ€์žฅ ์ฒ˜์Œ๊ณผ ๋งˆ์ง€๋ง‰์€ ์ˆซ์ž์ด๋‹ค"๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋Š” ์ฒซ๋ฒˆ์งธ์ˆซ์ž๋Š” ์–‘์ˆ˜๋ผ๋Š” ๋œป์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

import Foundation
let minusSplits = readLine()!.components(separatedBy: "-")
var sum = 0
var numArr: [Int] = []
for nums in minusSplits {
    let numbers = nums.components(separatedBy: "+").map{Int($0)!}
    numArr.append(numbers.reduce(0, +))
}

sum = numArr[0]
for i in 1..<numArr.count {
    sum -= numArr[i]
}

print(sum)