‡ CODING TEST STUDY ‡/º 프로그래머스

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

Trudy | 송연 2023. 7. 27. 16:03
 

 

Summer/Winter Coding(~2018)

 

nums[] 벡터가 주어지면 3개를 어떻게 고를 수 있을까..생각을 하다가..

가장 단순하고 첫 생각으로 스쳐지나가는 방법을 택함

int solution(vector<int> nums) { int answer = 0; int sum=0; for(int i=0; i<=nums.size()-3; i++){ //첫번째 수 for(int j=i+1; j<=nums.size()-2; j++){ //두번째 수 for(int m=j+1; m<=nums.size()-1; m++){//세번째 수 sum = nums[i]+nums[j]+nums[m]; cout << nums[i] << "+" <<nums[j] <<"+" << nums[m] <<"=" << sum << "\n"; } } } return answer; }

이렇게 for문을 3중으로 돌려 준 후 출력을 해보니 잘 조합된 걸 확인할 수 있었다.

이제 이 수들을 소수인지 아닌지를 판별해야하는데... 그런 방법이 있었나?

[C++]소수 판정 : 네이버 블로그 (naver.com)

웅... 무지성으로 하거나...가장 많이 사용되는 방법은 에라토스테네스의 채 알고리즘을 이용하는 것

에라잇! (YEET 아는 사람.. what's YEET? 에-잇~!)

그럼 에라잇토스테네스의 알고리즘에 대해 공부해볼게요

C++ 소수 판별하기 (tistory.com)

[c++/백준] 1929 소수 구하기 (에라토.. : 네이버블로그 (naver.com)

참고해서 소수 판별 함수 사용해서 sum을 소수판별하는 코드만 추가해줬더니

 

 

다른 사람의 풀이도 봐야겠쥬

트..트하핫

거의 비슷하다. 내 코드에서 18, 19 코드를 저렇게 합쳐서 해줘도 됐었겠군

sqrt(숫자) 안해줘도 /2해서 해도 됐구나..?