
Problem
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ฝ์์ ๊ฐ์์ ๋ง์
๋ ์ ์ left์ right๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. left๋ถํฐ right๊น์ง์ ๋ชจ๋ ์๋ค ์ค์์, ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ธ ์๋ ๋ํ๊ณ , ์ฝ์์ ๊ฐ์๊ฐ ํ์์ธ ์๋ ๋บ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ
programmers.co.kr
Solution
left๋ถํฐ right๊น์ง ์ซ์๋ฅผ 1๋ถํฐ n๊น์ง ๋๋๋ฉด์ ๋๋จธ์ง๊ฐ 0์ธ ์ซ์์ ๊ฐฏ์(์ฝ์)๋ฅผ ๊ตฌํ๋ค.
๋ง์ฝ ์ฝ์์ ๊ฐฏ์๊ฐ ์ง์ด๋ผ๋ฉด n์ ๋ํด์ฃผ๊ณ ํ์ด๋ฉด -n์ ๋ํด์ค๋ค.
Source Code
import Foundation | |
func solution(_ left:Int, _ right:Int) -> Int { | |
var answer = 0 | |
for n in left...right { | |
let count = (1...n).map{$0}.filter{n%$0 == 0}.count | |
answer += count%2 == 0 ? n : -n | |
} | |
return answer | |
} |
๋ค๋ฅธ ์ฌ๋ ํ์ด
์ ๊ณฑ๊ทผ์ ์์์ ์ด ์์ผ๋ฉด ์ฝ์์ ๊ฐฏ์๊ฐ ํ์๊ณ ์์ผ๋ฉด ์ง์์.
import Foundation
func solution(_ left:Int, _ right:Int) -> Int {
var answer = 0
for number in left...right{
if floor(sqrt(Double(number))) == sqrt(Double(number)) {
answer -= number
} else {
answer += number
}
}
return answer
}
์๋กญ๊ฒ ์๊ฒ๋ ๊ฒ
sqrt(Double:)
์ ๊ณฑ๊ทผ ๊ฐ์ ์ ์ ์๋ค.
floor(_:)
์์์ ๊ฐ์ ๋ค ์์ ์ค.
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ํ๋ก๊ทธ๋๋จธ์ค 2018 Summer/Winter Coding ๋ฐฐ๋ฌ (0) | 2021.05.21 |
---|---|
[Swift] ํ๋ก๊ทธ๋๋จธ์ค 2018 Summer/Winter Coding ๋ฐฉ๋ฌธ ๊ธธ์ด (0) | 2021.05.20 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ์์ (0) | 2021.05.15 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (0) | 2021.05.08 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค 3์ง๋ฒ ๋ค์ง๊ธฐ (0) | 2021.05.08 |
๋๊ธ