𝑪𝒐𝒅𝒊𝒏𝒈 𝑻𝒆𝒔𝒕
[프로그래머스] 소수 만들기
기누
2022. 6. 1. 10:25
# 문제
https://programmers.co.kr/learn/courses/30/lessons/12977?language=java
코딩테스트 연습 - 소수 만들기
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때
programmers.co.kr
# 자바 풀이
import java.util.ArrayList;
class Solution {
public int solution(int[] nums) {
int answer = 0;
int len = nums.length;
ArrayList<Integer> sum = new ArrayList<Integer>();
for (int i = 0; i<len; i++) {
if (i + 2 >= len) { break; }
for (int j = i + 1; j < len; j++) {
for (int k = j + 1; k <len; k++) {
sum.add(nums[i] + nums[j] + nums[k]);
}
}
}
// 소수 판결
for (int i = 0; i < sum.size(); i++) {
int number = 2;
while(number < sum.get(i)) {
if (sum.get(i) % number == 0) { // 소수가 아님
answer--;
break;
}
number++;
}
answer++;
}
return answer;
}
}
# 한 줄 느낌
모든 경우의 수를 for 문을 통해서 만들어야 했다. 더 좋은 방법이 있나 고민을 했던 것 같다..
소수를 구분하기 위해서 3자리 수를 더한 수를 나눠줘야 한다는 방법도 고민이 컸었다.