โฐ๋ฌธ์
์์ธ์๋ถํด๋ ์ด๋ค ์๋ฅผ ์์๋ค์ ๊ณฑ์ผ๋ก ํํํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด 12๋ฅผ ์์ธ์ ๋ถํดํ๋ฉด 2 * 2 * 3 ์ผ๋ก ๋ํ๋ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ 12์ ์์ธ์๋ 2์ 3์ ๋๋ค. ์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ n์ ์์ธ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ด์ ๋ฐฐ์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 2 ≤ n ≤ 10,000
์ ์ถ๋ ฅ ์
n | result |
12 | [2, 3] |
17 | [17] |
420 | [2, 3, 5, 7] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- 12๋ฅผ ์์ธ์๋ถํดํ๋ฉด 2 * 2 * 3 ์ ๋๋ค. ๋ฐ๋ผ์ [2, 3]์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- 17์ ์์์ ๋๋ค. ๋ฐ๋ผ์ [17]์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- 420์ ์์ธ์๋ถํดํ๋ฉด 2 * 2 * 3 * 5 * 7 ์ ๋๋ค. ๋ฐ๋ผ์ [2, 3, 5, 7]์ returnํฉ๋๋ค.
๐กํ์ด
โญ์ ์ถ ์ฝ๋
import java.util.List;
import java.util.ArrayList;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>();
List<Integer> prime = new ArrayList<>();
int count = 0;
// n์ ์ฝ์ ์ฐพ๊ธฐ
for(int i=2; i<=n; i++){
if(n%i == 0){
list.add(i);
}
}
// n์ ์ฝ์ ์ค์์ ์์ ์ฐพ๊ธฐ
for(int i=0; i<list.size(); i++){
for(int j=2; j<=n; j++){
if(list.get(i)%j == 0){
count += 1;
}
}
// ์ฝ์๊ฐ ์์ ํ๋๋ผ๋ฉด
if(count == 1){
prime.add(list.get(i));
}
count = 0;
}
int[] answer = new int[prime.size()];
// list์ ๊ฐ๋ค์ answer๋ฐฐ์ด์ ๋ฃ์ด์ค
for(int i=0; i<answer.length; i++){
answer[i] = prime.get(i);
}
return answer;
}
}
ArrayList๋ฅผ ํ์ฉํ์ฌ ์์ฑํ๋ค.
๐ง ์ฝ๋ ํด์
1. n์ ์ฝ์๋ฅผ ์ฐพ์์ list์ ๋ฃ์ด์ค๋ค.
2. n์ ์ฝ์ ์ค์์ 2 ~ n๊น์ง ๋๋์์ ๋ ๋๋์ด ๋จ์ด์ง๋ค๋ฉด count๋ฅผ 1์ฆ๊ฐ ์ํจ๋ค.
3. count๊ฐ 1 ์ด๋ผ๋ ๊ฒ์ ๋๋์ด ๋จ์ด์ง๋ ์๊ฐ ์๊ธฐ ์์ ํ๋๋ผ๋ ๋ป! ์ด๋ฏ๋ก ์์ธ์๋ฅผ ๋ด์ prime ๋ฆฌ์คํธ์ ๋ฃ์ด์ค๋ค.
4. ์์ธ์ ๊ฐ์ return ํ answer ๋ฐฐ์ด์ prime์ ๊ธธ์ด๋งํผ ์์ฑํ๋ค.
5. ๋ฆฌ์คํธ prime์ ๊ฐ์ answer์ ํ๋์ฉ ๋ฃ์ด์ฃผ๊ณ , answer์ return ํ๋ค.
'๐ Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์ค๋ณต๋ ๋ฌธ์ ์ ๊ฑฐ(์๋ฐ) (0) | 2023.04.01 |
---|---|
[Programmers] ์จ์ด์๋ ์ซ์์ ๋ง์ (1)(์๋ฐ) (0) | 2023.04.01 |
[Programmers] 2์ฐจ์์ผ๋ก ๋ง๋ค๊ธฐ(์๋ฐ) (0) | 2023.03.31 |
[Programmers] ๋ชจ์ ์ ๊ฑฐ(์๋ฐ) (0) | 2023.03.30 |
[Programmers] ํฉํ ๋ฆฌ์ผ(์๋ฐ) (0) | 2023.03.29 |