다희의 코딩 성장일기
[프로그래머스] level1. 소수 만들기 (자바 JAVA) 본문
[ 문제 ] [프로그래머스] level1. 소수 만들기 (자바 JAVA)
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12977
# 접근 방법 및 풀이
- nums배열에 있는 숫자중 서로 다른 3개의 숫자를 뽑으므로 조합을 이용해서 풀었다.
- 조합으로 3개의 숫자를 뽑고, 숫자들을 더해 그 숫자가 소수인지 개수를 세면 되는 문제.
- 자세한건 코드참조
# 주의할 점
- 딱히 없음
JAVA 코드
import java.util.*;
class Solution {
static int sel[], ans =0;
public int solution(int[] nums) {
sel = new int [3];
comb(0, 0, nums);
return ans;
}
public static void comb (int idx, int s_idx, int[] nums){
if(s_idx == 3){
int num = 0;
for(int i = 0; i < sel.length; i++){
num += sel[i];
}
if(check(num)){
ans++;
}
return;
}
if(idx == nums.length)
return;
sel[s_idx] = nums[idx];
comb(idx+1, s_idx+1, nums);
comb(idx+1, s_idx, nums);
}
public static boolean check(int num){
if(num == 1)
return false;
for(int i = 2; i <= Math.sqrt(num); i++){
if(num%i == 0)
return false;
}
return true;
}
}
REVIEW
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] level2. 스킬트리 (자바 JAVA) (0) | 2021.08.25 |
---|---|
[프로그래머스] level2. 다음 큰 숫자 (자바 JAVA) (0) | 2021.08.25 |
[프로그래머스] level2. 괄호 변환 (자바 JAVA) (0) | 2021.08.24 |
[프로그래머스] level2. 올바른 괄호 (자바 JAVA) (0) | 2021.08.24 |
[프로그래머스] level2. 최댓값과 최솟값 (자바 JAVA) (0) | 2021.08.24 |
Comments