백준 11502번 - 세 개의 소수 문제(Node.js)
https://www.acmicpc.net/problem/11502
11502번: 세 개의 소수 문제
정수론(수학)에서, 세 개의 소수 문제(3-primes problem) 는 다음과 같은 추측을 말한다. '5보다 큰 임의의 홀수는 정확히 세 개의 소수들의 합으로 나타낼 수 있다. 물론 하나의 소수를 여러 번 더할
www.acmicpc.net
- 알고리즘 분류 : 수학 브루트포스 알고리즘 정수론 소수 판정 에라토스테네스의 체
나의 풀이
- 제출 시 결과는 맞았습니다!!
- 57 ~ 73번째 줄 : FindPrimeNum() 함수는 1 ~ 1000 범위의 숫자들 중 소수를 구하는 함수이다.
┌ 소수는 자기 자신과 1로만 나누어지는 수라는 특징을 이용하여
└ 이중 for문과 bool 타입을 가지는 isPrime을 사용하여 1 ~ 1000 범위의 소수를 구했다. - 28 ~ 51번째 줄 : 세 개의 소수의 합으로 각 Test Case를 만들 수 있는 경우의 수를 구한다.
┌ 문제 조건 중 여러 개의 답이 가능하다면 그중 하나만 출력해도 되므로,
├ 처음 세 개의 소수의 합으로 각 Test Case를 만들 수 있다면, 그것을 바로 출력하도록 했다.
└ 다른 경우의 수가 출력되는 것을 막기 위하여 bool Type의 finished를 이용하였다.
느낀점
- 에라토스테네스의 체를 알아야 n까지 범위의 소수를 손쉽게 구할 수 있는 문제인 것 같다.
- for문을 4번이나 돌려서 RunTime Error가 뜰 줄 알았지만, Test Case가 1000까지이기 때문에 Error가 발생하지 않는 것 같다.
- 마찬가지로, 브루트포스 알고리즘에 해당되기 때문에 for문을 여러번 돌려서 푸는게 맞다고 생각하지만, 더 깔끔하고 쉽게 푸는 방법이 있지 않을까 더 연구해봐야될 것 같다..
'Algorithm > Baekjoon' 카테고리의 다른 글
백준 10828번 - 스택(Python) (0) | 2024.05.22 |
---|---|
백준 2252번 - 줄 세우기(Node.js) (0) | 2022.08.08 |
백준 1057번 - 토너먼트(Node.js) (1) | 2022.07.30 |
백준 11047번 - 동전 0(Node.js) (0) | 2022.07.28 |
백준 10773번 - 제로(Node.js) (0) | 2022.07.27 |