2024. 3. 22. 12:47, ๐กAlgorithm
๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/77884
์ ๊ทผ
- ์๋์ ๊ฐ์ด ๊ตฌ์ํ๋๋ฐ ArithmeticException ์์ธ๊ฐ ๋ฌ๋ค.
์ ๊ทผ, "main" java.lang.ArithmeticException ๋ฐ์
class Solution {
fun solution(left: Int, right: Int): Int {
var answer = 0
for(i in left .. right){ // left๋ถํฐ right๊น์ง ๋ฐ๋ณต
var count = 0
for(v in 0..i){
if(i % v == 0) count++
} // ์ฝ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ์
if(count % 2 == 0) answer += i else answer -= i
// ์ฝ์์ ๊ฐ์๊ฐ ์ง์๋ฉด answer์ ๋ํ๊ณ , ์ง์๋ฉด ๋บ
}
return answer
// answer๋ฅผ ๋ฆฌํด
}
}
- for(v in 0..i){ if( i % v == 0) count ++} ์์ i๋ฅผ 0์ผ๋ก ๋๋๋ ๊ฒฝ์ฐ๊ฐ ์์ด์ ์๊ธด ๋ฌธ์ ๋ค.
- 1๋ก ์์ ํ๋ ํด๊ฒฐ๋์๋ค.
์ฑ๊ณต ์ฝ๋
class Solution {
fun solution(left: Int, right: Int): Int {
var answer = 0
for(i in left .. right){ // left๋ถํฐ right๊น์ง ๋ฐ๋ณต
var count = 0
for(v in 1..i){
if(i % v == 0) count++
} // ์ฝ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ์
if(count % 2 == 0) answer += i else answer -= i
// ์ฝ์์ ๊ฐ์๊ฐ ์ง์๋ฉด answer์ ๋ํ๊ณ , ์ง์๋ฉด ๋บ
}
return answer
// answer๋ฅผ ๋ฆฌํด
}
}
์ค๋ช
- left ์๋ถํฐ right ์๊น์ง ๋ฐ๋ณตํ๋ for๋ฌธ์ ๋ง๋ ๋ค.
- for๋ฌธ ์์์ ์ฝ์์ ๊ฐ์๋ฅผ ๊ตฌํ๊ณ
- ๊ฐ์๊ฐ ์ง์์ธ์ง ํ์์ธ์ง ํ๋จํด answer์ ๋ํ๊ฑฐ๋ ๋นผ์ฃผ๋ ์์ ์ ํ๋ค.
- answer๋ฅผ ๋ฆฌํดํ๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ
class Solution {
fun solution(left: Int, right: Int): Int {
return (left..right).map { i -> if ((1..i).filter { i % it == 0 }.size % 2 == 0) i else -i }.sum()
}
}
- map๊ณผ filter, ๋๋คํจ์๋ฅผ ์ด์ฉํ ํ์ด๋ค.
- (left..right)
left๋ถํฐ right๊น์ง์ ๋ฒ์๋ฅผ ์์ฑํ๋ค. ์ด ๋ฒ์์ ํฌํจ๋ ๋ชจ๋ ์ ์๋ค์ ๋ฐ๋ณตํ๋ฉด์ ์ฒ๋ฆฌํ ๊ฒ์ด๋ค. - .map { i -> ... }
์์ฑ๋ ๋ฒ์์ ๊ฐ ์์์ ๋ํด ๋๋ค ํจ์๋ฅผ ์ ์ฉํ๋ค. ๊ฐ ์์๋ฅผ i๋ผ๋ ์ด๋ฆ์ ๋ณ์๋ก ๋ฐ์๋ค์ด๊ณ , ๋๋ค ํจ์ ๋ด์์ ์ฒ๋ฆฌํ ๊ฒ์ด๋ค. - (1..i).filter { i % it == 0 }
1๋ถํฐ i๊น์ง์ ๋ฒ์์์ i๋ฅผ ๋๋์์ ๋ ๋๋จธ์ง๊ฐ 0์ธ ์์๋ค์ ํํฐ๋งํ๋ค. ์ฆ, i์ ์ฝ์๋ค์ ๊ตฌํ๋ค. - .size
์ฝ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค. - % 2 == 0
์ฝ์์ ๊ฐ์๊ฐ ์ง์์ธ์ง ํ์ธํ๋ค. ์ง์์ด๋ฉด ์ฐธ(true)์ ๋ฐํํ๊ณ , ํ์์ด๋ฉด ๊ฑฐ์ง(false)์ ๋ฐํํ๋ค. - if ... i else ... -i
์ฝ์์ ๊ฐ์๊ฐ ์ง์์ด๋ฉด i๋ฅผ ๋ฐํํ๊ณ , ํ์์ด๋ฉด -i๋ฅผ ๋ฐํํ๋ค. - .sum()
์ ํ๋ ๊ฐ๋ค์ ํฉ์ ๊ณ์ฐํ๋ค.
๋ฐ์ํ
๐ฌ C O M M E N T