diff --git "a/JHLEE325/202601/21 BOJ G3 \354\206\214\354\210\230\354\235\230 \354\227\260\354\206\215\355\225\250.md" "b/JHLEE325/202601/21 BOJ G3 \354\206\214\354\210\230\354\235\230 \354\227\260\354\206\215\355\225\250.md" new file mode 100644 index 00000000..6f1ff9cb --- /dev/null +++ "b/JHLEE325/202601/21 BOJ G3 \354\206\214\354\210\230\354\235\230 \354\227\260\354\206\215\355\225\250.md" @@ -0,0 +1,50 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int N = Integer.parseInt(br.readLine()); + + if (N == 1) { + System.out.println(0); + return; + } + + boolean[] isPrime = new boolean[N + 1]; + Arrays.fill(isPrime, true); + isPrime[0] = isPrime[1] = false; + + for (int i = 2; i * i <= N; i++) { + if (isPrime[i]) { + for (int j = i * i; j <= N; j += i) { + isPrime[j] = false; + } + } + } + + List primes = new ArrayList<>(); + for (int i = 2; i <= N; i++) { + if (isPrime[i]) primes.add(i); + } + + int count = 0; + int start = 0, end = 0, sum = 0; + int size = primes.size(); + + while (true) { + if (sum >= N) { + if (sum == N) count++; + sum -= primes.get(start++); + } else if (end == size) { + break; + } else { + sum += primes.get(end++); + } + } + + System.out.println(count); + } +} +```