본문 바로가기

알고리즘/Baekjoon

투 포인터 .[1644]

[1. 문제 설명]

자연수가 주어졌을 때, 이 자연수를 연속된 소수의 합으로 나타낼 수 있는 경우의 수를 구한다.

(N <= 4,000,000)


[2. 풀이 접근]

소수의 연속 합이 필요하므로, 소수 리스트를 구하도록 한다.

단순한 소수 판정법은 시간이 오래 걸린다.

 

소수를 판정 할 수 있는 여러 기법 중

에라토스테네스의 체 를 이용하여 소수 리스트를 구하도록 한다.

시간복잡도는 O(nlog(logn)) 이므로 4,000,000 이하 모든 소수를 구하는데 충분한 시간이다.

=> https://testkernelv2.tistory.com/378

 

소수 리스트를 구할 수 있으므로,

부분 합을 구하면

나머지는 여타 다른 문제들과 비슷하다.

 

head 와 tail 을 옮겨가면서 주어진 자연수가 되는지 확인하는 것이다.


[3. 코드]

 

'알고리즘 > Baekjoon' 카테고리의 다른 글

최소신장트리. [1197]  (0) 2022.10.12
Meet in the middle. [1450]  (0) 2022.10.10
투 포인터. [1806]  (0) 2022.10.10
투 포인터. [3273]  (0) 2022.10.08
Union-Find. [20040]  (0) 2022.10.06