์ ์ N์ด ์ ๋ ฅ๋์ ๋ N์ ์์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ง๋ณด์.
์ด๋ค ์๋ฅผ ๋๋์ด ๋จ์ด์ง๊ฒ ํ๋ ์
ex) 12์ ์ฝ์๋? 1,2,3,4,6,12
- 12์ ์ ๊ณฑ๊ทผ์ธ 3๊น์ง, 0์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ ์๋ฅผ ๊ตฌํด๋ณด์
12 % 1 = 0
12 % 2 = 0
12 % 3 = 01,2,3
์ด ๊ตฌํด์ก๋ค- ์ด๋ ๊ฒ ๊ตฌํด์ง ์ซ์๋ค๋ก ๋ค์ 12๋ฅผ ๋๋์
12 /1
= 12
12 /2
= 6
12 /3
= 4- 12,6,4๊ฐ ๊ตฌํด์ก๋ค
- 1,2,3,4,6,12๊ฐ ๋์๋ค.
import kotlin.math.sqrt
class Solution {
fun solution(n: Int): Int {
val N = (sqrt(n.toDouble())).toInt()
val answerList = mutableListOf<Int>()
for (i in 1..N){
if(n % i == 0){
answerList.add(i)
}
}
for (i in 0..answerList.size-1){
if(n % answerList[i] == 0){
answerList.add(n / answerList[i])
}
}
return answerList.distinct().sum()
}
}
import kotlin.math.sqrt //import ํด์ค์ผ ํ๋ค.
print(sqrt(4.0)) //Double์ด๋ Float ์๋ฃํ์ด ๋ค์ด๊ฐ์ผ ํ๋ค.
>> 2.0
์ฝํ๋ฆฐ์ List๋ ๊ธฐ๋ณธ์ ์ผ๋ก immutable ์ด๋ค.
immutable
: ๋ถ๋ณ์
val list: List<Int> = List(3, {i -> i})
val list: List<Int> = listOf(0, 1, 2)
์์ฒ๋ผ ์ ์ธ๋ ๋ฆฌ์คํธ๋ค์ ์์ ์ด ๋ถ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง mutable๋ก ์ ์ธํ ๊ฒฝ์ฐ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
val answerList = mutableListOf<Int>()
answerList.add(3)
print(answerList)
>> 3
answerList.distinct()
๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ดค๋๋ฐ
answer = (1..n).filter { n % it == 0 }.sum()
์ด๋ฐ ํ์์ผ๋ก ํ์ด๋จ๋ค.
๋ด๊ฐ ํผ ๋ฐฉ์์ ์๊ฐ ๋ณต์ก๋๊ฐ O(โN)์ด ๋๋ฏ๋ก, 10์ต์ ์
๋ ฅ์ด ๋ค์ด์จ๋คํด๋, ์ฝ 3๋ง๋ฒ์ ์ฐ์ฐ์ผ๋ก ์ฝ์๋ฅผ ๊ตฌํ ์ ์๋ค.
๊ทผ๋ฐ ์์ ํ์ด๋๋ก ํ๋ฉด n๊น์ง ํ๋ํ๋ 0์ผ๋ก ๋๋ ์ง๋์ง ๊ฒ์ฌํด์ ์๊ฐ ๋ณต์ก๋๊ฐ O(N)์ด์ง ์์๊น??
Collection์ ๋ํด ๋ ๊ณต๋ถํด ๋ณด์
์ฐธ๊ณ ์๋ฃ : https://soopeach.tistory.com/62