-
프로그래머스 소수 만들기제로부터 C# 코딩테스트 2023. 11. 29. 17:30728x90
주어진 숫자 배열이 주어지고, 중복되지 않은 숫자 3개를 선택해 소수를 만들때 만들 수 있는 소수의 개수를 구하는 문제.
위 문제에서는 nums의 배열이 50이 최대기 때문에 간단하게 풀 수 있는 문제.
주어진 숫자 3개를 더했을 때 나올 수 있는 가짓수를 구한다면 포문 하나로도 풀 수 있을 것입니다.
보통 조합을 구하는 공식은 nCr로, 0부터 100까지 중복되지 않은 3개의 숫자를 선택하여 더할 때,
C(100, 3) = 100! / (3! * (100-3)!) = 100 * 99 * 98 / (3 * 2 * 1) = 161,700 가지가 나옵니다.
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 sum = 0; sum += nums[i] + nums[j] + nums[k]; if(Prime(sum)){ answer++; } } } } return answer; } public bool Prime(int num){ for(int i = 2; i<num;i++){ if(num%i == 0) { return false; } } return true; } }
728x90'제로부터 C# 코딩테스트' 카테고리의 다른 글
LeetCord - 84. Largest Rectangle in Histogram (0) 2024.01.09 프로그래머스 - 신고 결과 받기 (0) 2023.12.16 프로그래머스 - 정수를 나선형으로 배치하기 (1) 2023.11.22 프로그래머스 - 안전지대 (0) 2023.11.21 프로그래머스 - 저주의 숫자 3 (0) 2023.11.20