๋ฌธ์ ์ค๋ช
๋ ์ ์ left์ right๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. left๋ถํฐ right๊น์ง์ ๋ชจ๋ ์๋ค ์ค์์, ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ธ ์๋ ๋ํ๊ณ , ์ฝ์์ ๊ฐ์๊ฐ ํ์์ธ ์๋ ๋บ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- 1 ≤ left ≤ right ≤ 1,000
์ ์ถ๋ ฅ ์
left | right | result |
13 | 17 | 43 |
24 | 27 | 52 |
๋ด ๋ฌธ์ ํ์ด
import Foundation
func solution(_ left:Int, _ right:Int) -> Int {
var result = 0
for i in left...right {
var count = 0
for j in 1...i {
if i % j == 0 { count += 1 }
}
count % 2 == 0 ? (result += i) : (result -= i)
}
return result
}
- ์ด์ฐจํผ left๋ right๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฏ๋ก ๋ฐ๋ก ์์ธ์ฒ๋ฆฌ ํด ์ค ํ์ ์์ด, ๋ฐ๋ก left...right๋ก ๋ฐ๋ณต๋ฌธ์ ์์ฑํ๋ค.
- left๋ถํฐ right๊น์ง ๋ชจ๋ ์๋ฅผ 1๋ถํฐ ํด๋น ์๊น์ง๋ก ๋๋ ๋ณด๋ฉฐ ์ฝ์์ ๊ฐ์๋ฅผ ๊ตฌํด์ฃผ์๋ค.
- ์ฝ์์ ๊ฐ์๊ฐ ์ง์๋ฉด ๋ํด์ฃผ๊ณ , ํ์๋ฉด ๋นผ์ฃผ๋ ๊ฒ์ ๋ฐ๋ณตํด์ฃผ์ด ๋์ ๋ result ๊ฐ์ ๋ฐํํด์ฃผ์๋ค.
์ธ์์ ์ธ ํ์ด
func solution(_ left: Int, _ right: Int) -> Int {
return (left...right).map { i in (1...i).filter { i % $0 == 0 }.count % 2 == 0 ? i : -i }.reduce(0, +)
}
- ๊ฐ๋ ์ฑ ์ธก๋ฉด์์ ๋ณด๋ฉด ์ข์ ์ฝ๋์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๊ณ ์ฐจ ํจ์ ์ฌ์ฉ ๋ถ๋ถ์์ ๋ฐฐ์ธ์ ์ด ๋ง์ ๊ฐ์ ธ์๋ดค๋ค.
- ์ฐ์ (left...right).map ์ฒ๋ผ ๋ฐ๋ก ๋ฒ์์ map์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ด ๊ต์ฅํ ์ ๊ธฐํ๋ค,,
- ํ ์ค์ map, filter, reduce๊ฐ ๋ชจ๋ ๋ค์ด๊ฐ ์ฝ๋,, ์ญ์ ํ์ฉํ ์ ์ด ๋ง๋ค.
๐ก ํผ๋๋ฐฑ
- ๊ณ ์ฐจํจ์๋ฅผ ์ ์ ํ ์ ์์ด ์์ฑํ๋ค๋ฉด ๋ ๊ฐ๊ฒฐํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์์ ๊ฒ ๊ฐ๋ค.
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[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.17 |
[Swift Algorithm] ๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ Programmers(Lv.1) (0) | 2021.06.17 |
[Swift Algorithm] 2016๋ Programmers(Lv.1) (0) | 2021.06.17 |
๋๊ธ