๋ฌธ์ ์ค๋ช
์ด๋ค ์ ์๋ค์ด ์์ต๋๋ค. ์ด ์ ์๋ค์ ์ ๋๊ฐ์ ์ฐจ๋ก๋๋ก ๋ด์ ์ ์ ๋ฐฐ์ด absolutes์ ์ด ์ ์๋ค์ ๋ถํธ๋ฅผ ์ฐจ๋ก๋๋ก ๋ด์ ๋ถ๋ฆฌ์ธ ๋ฐฐ์ด signs๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ค์ ์ ์๋ค์ ํฉ์ ๊ตฌํ์ฌ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- absolutes์ ๊ธธ์ด๋ 1 ์ด์ 1,000 ์ดํ์
๋๋ค.
- absolutes์ ๋ชจ๋ ์๋ ๊ฐ๊ฐ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค.
- signs์ ๊ธธ์ด๋ absolutes์ ๊ธธ์ด์ ๊ฐ์ต๋๋ค.
- signs[i] ๊ฐ ์ฐธ์ด๋ฉด absolutes[i] ์ ์ค์ ์ ์๊ฐ ์์์์, ๊ทธ๋ ์ง ์์ผ๋ฉด ์์์์ ์๋ฏธํฉ๋๋ค.
์ ์ถ๋ ฅ ์
absolutes | signs | result |
[4,7,12] | [true,false,true] | 9 |
[1,2,3] | [false,false,true] | 0 |
๋ด ๋ฌธ์ ํ์ด
import Foundation
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
var sum = 0
for i in 0..<absolutes.count {
signs[i] ? (sum += absolutes[i]) : (sum -= absolutes[i])
}
return sum
}
- ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ณ , ๋ฐฐ์ด์ด Bool ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ฐ์ฐ์ ํ์ ์์ด signs[i] ? ๋ก ์ฌ์ฉํ๋ค.
- true๋ฉด ๋ํด์ฃผ๊ณ false๋ฉด ๋นผ์ฃผ๋ฉด์ ๊ฐ์ ๋์ ํด์ฃผ์๋ค.
์ธ์์ ์ธ ํ์ด
import Foundation
func solution(_ absolutes: [Int], _ signs: [Bool]) -> Int {
var index = -1
return absolutes.reduce(0) {
index += 1
return signs[index] ? $0 + $1 : $0 - $1
}
}
- reduce, ํด๋ก์ ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต๋ฌธ ์์ด ์์ฑํ ๊ฒ์ด ์ธ์๊น์ด ๊ฐ์ ธ์๋ค.
๐ก ํผ๋๋ฐฑ
- ์ฌ์ด ๋ฌธ์ ๋ผ ๊ธ๋ฐฉ ํ์๋ค,.!!
- reduce๋ก ๋ํด์ฃผ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ๊ฐ๋ค.
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ Programmers(Lv.1) (0) | 2021.06.18 |
---|---|
[Swift Algorithm] ์ฒด์ก๋ณต Programmers(Lv.1) (0) | 2021.06.18 |
[Swift Algorithm] ๋ด์ Programmers(Lv.1) (0) | 2021.06.18 |
[Swift Algorithm] 3์ง๋ฒ ๋ค์ง๊ธฐ Programmers(Lv.1) (0) | 2021.06.18 |
[Swift Algorithm] ์ฝ์์ ๊ฐ์์ ๋ง์ Programmers(Lv.1) (0) | 2021.06.18 |
๋๊ธ