반응형
문제 설명
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
using System;
class Solution
{
public int solution(int[] nums)
{
int answer = 0;
int sum = 0;
for(int i=0; i < nums.Length; i++)
{
for(int j= i+1; j < nums.Length; j++)
{
for(int q = j+1; q < nums.Length; q++)
{
sum = nums[i] + nums[j] + nums[q];
for(int k=2; k < sum; k++)
if(sum % k == 0)
break;
else
{
if(k == sum -1)
answer++;
}
}
}
}
return answer;
}
}
순차적으로 q,j,i가 증가하는 방법을 사용하였다.
위 사진과 같이 q가 다 돌면 j를 돌리고 그다음 i를 상승 시키는 방법으로 3중 for문 을 사용하였다.
소수 검사는 2이상 자기 자신 이하의 숫자로 나누었을때 나머지가 0인 경우(약수가 존재)가 없으면 소수로 처리하였다.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] C# 과일 장수 (0) | 2023.08.09 |
---|---|
[프로그래머스] C# 외계어 사전 (0) | 2023.08.09 |
[프로그래머스] C# 체육복 (0) | 2021.07.13 |
[프로그래머스] C# 내적 (0) | 2021.07.13 |
[프로그래머스] C# 숫자 문자열과 영단어 (0) | 2021.07.13 |