https://school.programmers.co.kr/learn/courses/30/lessons/136798
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ฝ์ ๊ตฌํ๋ ์ฝ๋๋ง ํจ์จ์ ์ผ๋ก ์ง ๋ค๋ฉด ์ฌ์ด ๋ฌธ์ ์ด๋ค.
๋ง์ฝ์ ์ฝ์๋ฅผ
for( int i = 1; i <= number; i++){
for (int j = 1; j <= i; j++ ) {
if(i%j==0) ์ฝ์
}
}
์ด๋ ๊ฒ ๋จ์ํ๊ฒ ์ง๋ฉด, ์๊ฐ์ด ์ค๋๊ฑธ๋ ค ๋ก์ง์ด ๋ง์๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.
์กฐ๊ธ๋ง ์๊ฐ์ ํด๋ณด๋ฉด, number์ ์ฝ์๊ฐ 1์ผ๋ ๋ค๋ฅธ ์ฝ์๋ number/1์ด ๋๋ฏ๋ก ๋ค๋ฅธ ํ๋์ ์ฝ์๋ number๊ฐ ๋๋ค.
๋ค์๋งํด number์ ์ฝ์ ์ค ํ๋๊ฐ i ๋ผ๊ณ ํ์๋, ๋ค๋ฅธ ์ฝ์๋ number/i๊ฐ ๋๋ฏ๋ก ํ๋์ ์ฝ์๋ฅผ ์๋ฉด ๋ค๋ฅธ ํ๋์ ์กด์ฌ๊ฐ ๋ณด์ฅ๋๋ค๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ๊ตฌํ ๊ฒฝ์ฐ ์๊ฐ์ ํจ์ฌ ์๋ ์ ์๋ค.
int number = 123456789;
int cnt = 0;
for(int i=1; i*i <= number; i++) {
if( i*i == number) cnt++;
else if(number % i == 0) cnt+=2;
}
์ด๋ ๊ฒ ์ง๋ ๋ฐฉ์์ด๋ค.
import java.util.*;
class Solution {
public int solution(int number, int limit, int power) {
int answer = 0;
ArrayList<Integer> list = new ArrayList<>();
for(int i=1; i<=number; i++){
int cnt=0;
for(int j=1; j*j<=i; j++){
if( j*j == i) cnt++;
else if(i%j==0) cnt+=2;
}
list.add(cnt);
}
for(int i=0; i<list.size(); i++){
if(list.get(i)<=limit){ // ์ ํ์ ์ด๊ณผํ์ง ์์ผ๋ฉด
answer+=list.get(i);
} else { // ์ด๊ณผ ํ ๊ฒฝ์ฐ power๋ก ๋์ฒด
answer+=power;
}
}
return answer;
}
}
์..
์ฝ์๋ฅผ ๊ตฌํ๊ณ ๋์ Collections.sort(list)๋ฅผ ํ๊ณ ,
๋ฐ์ for๋ฌธ์์ list๋ฅผ ๋๋ฉด์, limit์ ์ด๊ณผํ ๊ฒฝ์ฐ power * (list.size() - i)๋ฅผ ํ๊ณ break ๊ฑธ์ด์ ๋๋ด๋ดค๋๋ฐ,
์ด๊ฒ ์กฐ๊ธ ๋ ์ค๋๊ฑธ๋ฆฌ๋ ๋ฐฉ์์ด์๋ค. ์๋ง ์ ๋ ฌ์ ํด์ ๊ทธ๋ ๊ฒ ์ง...
'๐ ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค & ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : [1์ฐจ]๋น๋ฐ์ง๋ (0) | 2023.03.14 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ ( *Stack ) (0) | 2023.03.09 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ๋ช ์์ ์ ๋น(1) ( *์ฐ์ ์์ ํ ) (0) | 2023.03.06 |
[๋ฐฑ์ค][JAVA] 9095๋ฒ : 1, 2, 3 ๋ํ๊ธฐ ( *DP ) (1) | 2023.03.05 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ์คํจ์จ (0) | 2023.03.04 |