Tags
- PGM
- queue
- stack
- DP
- ๋ฐฑํธ๋ํน
- Java
- ์ ๋ ฌ
- ์๋ฎฌ๋ ์ด์
- LV2
- ๋ฌธ์์ด
- ๊ตฌํ
- ๊น์ด ์ฐ์ ํ์
- ๊ทธ๋ํ ํ์
- SpringBoot
- Dynamic Programming
- BOJ
- CodingTest
- ์ ์๋ก
- dfs
- greedy
- ๋๋น ์ฐ์ ํ์
- ์ํ
- ๊ทธ๋ํ ์ด๋ก
- Python
- sort
- ๊ต์ฌ
- BFS
- ์๋ฃ๊ตฌ์กฐ
- Study
- Brute Force Algorithm
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1149 : RGB๊ฑฐ๋ฆฌ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- N๊ฐ์ ์ง์ R,G,B 3๊ฐ์ง ์์ด ์ฐ์ํ์ง ์๋๋ก ์น ํ๋ค.
- ๊ฐ ์ง์ ์ธ ๊ฐ์ง ์์ ๋ํ ๋น์ฉ์ด ์ฃผ์ด์ง๋ค.
- ๋ชจ๋ ์ง์ ์น ํ๋ ์ต์๋น์ฉ์ ์ถ๋ ฅํ๋ค.
- ์น ํ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ฉด 3x2x2x...x2 = 3x2x(n-1) = 6(n-1)
- n์ ์ต๋ 1,000์ด๋ฏ๋ก, ์น ํ๋ ๊ฒฝ์ฐ์ ์๋ ์ต๋ 5994๊ฐ์ง
- ๊ฐ์ง์๊ฐ ๋ง์ง ์์ ์ฌ๊ท, ๋ฐฑํธ๋ํน์ ์ฌ์ฉํ ๋ธ๋ฃจํธ ํฌ์ค๋ ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ง๋ง, ์๊ฐ์ 0.5์ด์ด๋ฏ๋ก DB๋ฅผ ์ด์ฉํ๋ค.
- DP
- ํ์ฌ ์์น์ 3๊ฐ์ง ์ ๋ณ ์ต์๊ฐ ๋์ : 2์ฐจ์ ๋ฐฐ์ด dp[N][3]
- ์ด์ ๊ฐ ์ค ํ์ฌ ์๊ณผ ๋ค๋ฅธ ๋ ์ ์ค ์ต์๊ฐ ์ฌ์ฉ
- ์ ํ์ (now๋ ํ์ฌ ์ธ๋ฑ์ค, a๋ ํ์ฌ ๋น์ฉ)
- dp[now][0] = Math.min(dp[now-1][1], dp[now-1][2])+a[0]
- dp[now][1] = Math.min(dp[now-1][0], dp[now-1][2])+a[1]
- dp[now][2] = Math.min(dp[now-1][1], dp[now-1][0])+a[2]
๐ธ ์ฝ๋ ๐ธ
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = null;
int N = Integer.parseInt(br.readLine());
int[][] dp = new int[N + 1][3];
for (int i = 1; i <= N; i++) {
st = new StringTokenizer(br.readLine());
dp[i][0] = Math.min(dp[i - 1][1], dp[i - 1][2]) + Integer.parseInt(st.nextToken());
dp[i][1] = Math.min(dp[i - 1][0], dp[i - 1][2]) + Integer.parseInt(st.nextToken());
dp[i][2] = Math.min(dp[i - 1][1], dp[i - 1][0]) + Integer.parseInt(st.nextToken());
}
bw.write(Integer.toString(Math.min(Math.min(dp[N][0], dp[N][1]), dp[N][2])));
bw.flush();
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- 1๋ถํฐ N๋ฒ์งธ ์ง์ผ๋ก R,G,B ๊ฐ ์์ ์น ํ์ ๋ ์ต์๊ฐ์ ๋์ ํด๊ฐ๋ค.
๐ธ end ๐ธ
- ์ ํ์ ์ธ DP ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ ์ฝ๊ฒ ํ์ดํ ์ ์์๋ค.
- ๋ฌธ์ ๋ถ์๊ณผ ํ์ด ๊ณํ์ ์ ์ด๊ฐ๋ฉฐ ํ์๋๋ฐ, ๋ธ๋ฃจํธ ํฌ์ค์ ์๊ฐ ๊ณ์ฐ์ด ๋ฏธํกํ๋ ๊ฒ ๊ฐ๋ค.
- ์ผ์ฑ SW ์ญ๋ ํ ์คํธ Bํ์ ์ค๋นํ๋๋ฐ, ์ด๋ฐ ์ฐ์ฐ ์ ๊ณ์ฐ์ ๋ํ ์ฐ์ต์ ๋ ์ฒ ์ ํ ํด์ผํ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_15663 : N๊ณผ M (9) (0) | 2023.06.11 |
---|---|
BOJ_1043 : ๊ฑฐ์ง๋ง (0) | 2023.06.09 |
Lv.1 : ๊ณต์ ์ฐ์ฑ (0) | 2023.04.26 |
Lv.1 : ์ถ์ต ์ ์ (0) | 2023.04.25 |
Lv.1 : ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2023.04.25 |