Tags
- greedy
- dfs
- ๋ฐฑํธ๋ํน
- ๊น์ด ์ฐ์ ํ์
- Python
- ์ ์๋ก
- ๋ฌธ์์ด
- Dynamic Programming
- ๊ทธ๋ํ ํ์
- ๊ต์ฌ
- ๊ทธ๋ํ ์ด๋ก
- SpringBoot
- Java
- PGM
- ์ํ
- BOJ
- Brute Force Algorithm
- ์๋ฎฌ๋ ์ด์
- LV2
- DP
- CodingTest
- ์๋ฃ๊ตฌ์กฐ
- BFS
- sort
- queue
- ์ ๋ ฌ
- stack
- ๋๋น ์ฐ์ ํ์
- Study
- ๊ตฌํ
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1644 : ์์์ ์ฐ์ํฉ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ ์ N์ ์ฐ์๋ ์์์ ํฉ์ผ๋ก ๋ง๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์์๋ฅผ ๊ตฌํ๊ธฐ ์ํด ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.
- ์ฐ์๋ ์์ ํฉ์์ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ง๋ฏ๋ก ํฌ ํฌ์ธํฐ๋ฅผ ์ด์ฉํด ๋ฐฐ์ด์ ์ด๋ํ๋ฉฐ N์ด ๋ง๋ค์ด์ง๋์ง ํ์ธํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.*;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws IOException {
// Input
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
if (N == 1) {
bw.write('0');
bw.flush();
return;
}
// ์์ ๊ตฌํ๊ธฐ : ์๋ผํ ์คํ
๋ค์ค์ ์ฒด
boolean[] primes = new boolean[N + 1];
ArrayList<Integer> primesList = new ArrayList<>();
for (int i = 2; i <= N; i++) {
if (!primes[i]) {
int mul = 2;
while (i * mul <= N) {
primes[i * mul++] = true;
}
primesList.add(i);
}
}
// ๊ฒฝ์ฐ์ ์ ๊ตฌํ๊ธฐ : ํฌํฌ์ธํฐ
int left = 0;
int right = 0;
long sum = 2;
int answer = 0;
while (left <= right) {
if (sum < N) { // ํฉ์ด ์์ผ๋ฉด ์ค๋ฅธ์ชฝ +1
if (++right >= primesList.size()) break;
sum += primesList.get(right);
} else if (sum > N) { // ํฉ์ด ํฌ๋ฉด ์ผ์ชฝ -1
sum -= primesList.get(left++);
} else { // ๊ฐ์ผ๋ฉด ์นด์ดํธ 1๋๋ฆฌ๊ณ ์ผ์ชฝ -1
answer++;
sum -= primesList.get(left++);
}
}
// Output
bw.write(Integer.toString(answer));
bw.flush();
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ๋จผ์ ์์ ๋ชฉ๋ก์ ๊ตฌํ๊ธฐ ์ํด ์๋ผํ ์คํ
๋ค์ค์ ์ฒด๋ฅผ ์ด์ฉํ๋ค.
- ์์๋ฅผ ์ฐพ์ผ๋ฉด ArrayList์ธ primeList์ ์ ์ฅํ๋ค.
- primeList์ ์ ์ฅ ๋ ์์ ๋ชฉ๋ก์ผ๋ก ํฌ ํฌ์ธํฐ๋ฅผ ์ด์ฉํด ์ฐ์๋ ํฉ์ด N์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ค.
- ํฉ์ด N๋ณด๋ค ์์ผ๋ฉด right +1
- ํฉ์ด N๋ณด๋ค ํฌ๋ฉด left + 1
- ํฉ์ด N๊ณผ ๊ฐ์ผ๋ฉด answer + 1 ํ, left + 1
- answer์ ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- N์ด 1์ธ ๊ฒฝ์ฐ์ primeList์ ํฌ๊ธฐ๊ฐ 0์ด๋ฏ๋ก ๋ฐํ์ ์๋ฌ๊ฐ ๋ฌ๋ค. 1์ธ ๊ฒฝ์ฐ๋ ์์ธ์ฒ๋ฆฌ ํ๋ค.
- ํฌ ํฌ์ธํฐ์ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋ ์ฌ๋ฆฐ ํ์๋ ์ฝ๊ฒ ํ์ด ํ ์ ์์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_3190 : ๋ฑ (0) | 2024.04.11 |
---|---|
BOJ_2143 : ๋ ๋ฐฐ์ด์ ํฉ (0) | 2024.04.10 |
BOJ_12015 : ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด 2 (0) | 2024.04.09 |
BOJ_1005 : ACM Craft (0) | 2024.04.04 |
BOJ_12100 : 2048 (Easy) (0) | 2024.03.31 |