728x90
내 풀이
(실수로 cout을 안 지웠는데 잘 채점이 됐다..!)
for문이 엄청 많은데ㅎㅎ... 어차피 함수로 뽑아도 for문 쓰면 실질적으로 돌아가는 for문은 똑같을 것 같아서 그냥 한방에 해결했다.
소수 판별은 2부터 자기자신 직전까지 포문으로 나눠봐서 나눠지는게 있으면 break해서 나가고, 안 나눠져서 끝까지 갔으면 answer++로 값을 올려줬다.
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<int> nums) {
int answer = 0;
for (int i = 0; i < nums.size() - 2; i++) {
for (int j = i + 1; j < nums.size() - 1; j++) {
for (int k = j + 1; k < nums.size(); k++) {
int sum = nums[i] + nums[j] + nums[k];
for (int m = 2; m < sum; m++) {
//나눠지는 수가 있으면 -> 소수가 아니면
if (sum % m == 0) break;
else {
if (m == sum - 1) {
cout << nums[i] << nums[j] << nums[k] << endl;
answer++;
}
}
}
}
}
}
cout << answer << endl;
return answer;
}
'[C_C++]코딩테스트 연습 > [프로그래머스] level 1' 카테고리의 다른 글
[C++] 프로그래머스 - 로또의 최고 순위와 최저 순위 (0) | 2021.07.13 |
---|---|
[C++] 프로그래머스 - 예산 (0) | 2021.07.13 |
[C++] 프로그래머스 - 신규 아이디 추천 (0) | 2021.07.13 |
[C++] 프로그래머스 - 크레인 인형뽑기 (0) | 2021.07.02 |
[C++] 프로그래머스 - 2016년 (0) | 2021.07.02 |