[프로그래머스] 소수 만들기

2021. 8. 6. 03:14·Algorithm/Solution
728x90

코딩테스트 연습 - 소수 만들기 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 소수 만들기

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때

programmers.co.kr


🔎 문제 설명

숫자 세개를 더해서 소수가 되는 경우의 개수를 구하려고 함.

num이라는 배열에 숫자들이 주어지고 서로 다른 3개를 골라 더해 소수가 되는 경우의 수를 리턴

 

🔎 풀이 과정

소수가 되는 조건 = 1과 자기 자신 이외의 숫자로 나누어지지 않는다.

 

모든 경우의 수를 다 따져봐야 되므로 완전 탐색으로 풀어야 할 거같다.

반복문을 돌려서 서로다른 3개를 더할 수있게하고, 더해진 숫자를 n 변수에 저장. 

>> 조합으로 짜면 된다. (반복문 3개를 돌림)

 

그리고 2~n-1까지 나눠지는게 있는지 확인 나눠지면(나머지가 0이면) 소수가 아님.

그래서 안나눠진다면 answer에 1을 더해줌.

 

 

<정답 코드>

#include <vector>
#include <iostream>
using namespace std;

int isdecimal(int x) {
    for (int i = 2; i < x; i++) {
        if (x % i == 0) return 0;
        else continue;
    }
    return 1;
}

int solution(vector<int> nums) {
    int answer = 0;
    int n;
    for (int i = 0; i < nums.size(); i++) {
        for (int j = i + 1; j < nums.size(); j++) {
            for (int k = j + 1; k < nums.size(); k++) {
                n = nums[i] + nums[j] + nums[k];
                answer += isdecimal(n);
            }
        }
    }
    return answer;
}

 

 

<개념> 배열/벡터로 주어진 숫자들의 조합(nCr) 구하기

조합하려는 수(r)만큼 반복문을 돌려주면 된다.

//만약 r=3일때 
for(let i=0; i<arr.length; i++){
    for(let j=i+1; j<arr.length; j++){
        for(let k=j+1; k<arr.length; k++) {
            ans.push([ arr[i], arr[j], arr[k] ]);
        }
    }
}
728x90
저작자표시 비영리 (새창열림)

'Algorithm > Solution' 카테고리의 다른 글

[프로그래머스] 두 정수 사이의 합  (0) 2021.08.10
[프로그래머스] 위클리 챌린지 2주차 문제 - 상호 평가(C++)  (0) 2021.08.09
[프로그래머스] 음양 더하기  (0) 2021.08.06
[프로그래머스] 위클리 챌린지 1주차 문제 - 부족한 금액 계산하기  (0) 2021.08.05
[C++] 백준 2644번 촌수계산  (0) 2021.05.05
'Algorithm/Solution' 카테고리의 다른 글
  • [프로그래머스] 두 정수 사이의 합
  • [프로그래머스] 위클리 챌린지 2주차 문제 - 상호 평가(C++)
  • [프로그래머스] 음양 더하기
  • [프로그래머스] 위클리 챌린지 1주차 문제 - 부족한 금액 계산하기
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (253)
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (65)
        • Article (11)
        • Study (35)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (111)
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (15)
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    react
    자료구조
    lisp
    백준
    리팩토링
    Algorithm
    데브코스
    파일처리
    C++
    프로그래머스
  • hELLO· Designed By정상우.v4.10.2
BeNI
[프로그래머스] 소수 만들기
상단으로

티스토리툴바