[C#] 소수 만들기
2020. 8. 10. 19:28ㆍ[C#] 코딩테스트 문제풀이
반응형
프로그래머스 문제 (Level 2)
문제 설명
주어진 숫자 중 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;
for(int i=0; i<nums.Length-2; i++)
{
for(int j=i+1; j<nums.Length-1; j++)
{
for(int k =j+1; k<nums.Length; k++)
{
int num = nums[i] +nums[j]+nums[k];
bool check = true;
for(int t =2; t<num; t++)
{
if(num % t == 0)
{
check =false;
break;
}
}
if(check) answer++;
}
}
}
return answer;
}
}
느낀점: 이 문제는 완전 탐색을 요구하는 문제이기 때문에 for문을 중첩하더라도 똑같은 케이스를 방문하지 않는 것에 집중하였다.
모든 경우의 수를 더하여주고, 더한 값이 소수인지를 판별하는 for문을 하나 더 둬서 마무리하는 방식으로 풀어보았다.
반응형
'[C#] 코딩테스트 문제풀이' 카테고리의 다른 글
[C#] JadenCase 문자열 만들기 (0) | 2020.08.12 |
---|---|
[C#]N개의 최소 공배수 (2) | 2020.08.11 |
[C#] 점프와 순간이동 (0) | 2020.08.10 |
[C#] 영어 끝말잇기 (0) | 2020.08.05 |
[C#] 예상 대진표 (0) | 2020.08.05 |