728x90
반응형
문제를 봤을 때 "서로 다른 숫자 중 3개를 골라" 라고 나왔을 때 이건 조합을 이용해서 풀면 좋겠다고 싶었다.
c++ STL에 조합을 만드는게 있었으면 좋았겠지만 순열을 만드는 것은 있다고 한다.
인터넷에 누가 올려주셔서 그냥 보고 따라했다.
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> nums) {
int answer = 0;
vector<int> arr;
vector<bool>v(nums.size() - 3, false);
v.insert(v.end(), 3, true);
do {
vector<int> temp;
int sum = 0;
for (int k = 0; k < nums.size(); k++) {
if (v[k]) temp.push_back(nums[k]);
}
for(int & i : temp) {
sum += i;
}
arr.push_back(sum);
temp.clear();
} while (next_permutation(v.begin(), v.end()));
for(int & i : arr) {
for(int u = 2; u <= i; u++) {
if(i % u == 0 && i == u) {
answer++;
}
else if(i % u == 0 && i != u){
break;
}
}
}
return answer;
}
728x90
반응형
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[Level 1, C++] 3진법 뒤집기 (0) | 2022.07.03 |
---|---|
[Level 1, C++] 약수의 개수와 덧셈 (0) | 2022.07.03 |
[Level 1, C++] K번째수 (0) | 2022.07.03 |
[Level 1] 없는 숫자 더하기 (0) | 2022.07.03 |
[Level 1] 신규 아이디 추천 (0) | 2022.07.03 |