-
[programmers] 소수 만들기 / C++공부/PS (programmers) 2022. 7. 19. 22:33
https://school.programmers.co.kr/learn/courses/30/lessons/12977
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <vector> #include <iostream> #include <math.h> using namespace std; int answer = 0; int visited[1001]; int sel[10]; int isPrime(int num) { if(num == 1) return 0; // 소수 X int root = sqrt(num); for(int i=2; i<=root; i++) { if(num%i==0) { return 0; // 소수 X } } return 1; // 소수 O } void dfs(int start, int depth, vector<int> arr, int size) { if(depth >= 3) { int sum = 0; for(int i=0; i<3; i++) { sum += sel[i]; } if(isPrime(sum)) { answer += 1; } return; } for(int i=start; i<size; i++) { if(!visited[i]) { visited[i] = 1; sel[depth] = arr[i]; dfs(i,depth+1, arr, size); visited[i] = 0; } } } int solution(vector<int> nums) { dfs(0,0,nums, nums.size()); return answer; }
'공부 > PS (programmers)' 카테고리의 다른 글
[programmers] 폰켓몬 / C++ (0) 2022.07.27 [programmers] 이상한 문자 만들기 / C++ (0) 2022.07.20 [programmers] 제일 작은 수 제거하기 / C++ (0) 2022.07.19 [programmers] 두 개 뽑아서 더하기 / C++ (0) 2022.07.19 [programmers] 프린터 / C++ (0) 2022.05.18