๐ ๋ฌธ์ ๋งํฌ
๐ ํ์ด ๊ณผ์
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ์ ํ + ์ฌ๊ท ์ ํ์ ๋ฌธ์ ์
๋๋ค.
- ๋ฌธ์ ์ ์กฐ๊ฑด์ ์ข
ํฉํด๋ณด๋ฉด, ํ์ฌ ์ธ๋ฑ์ค์ ์ต์๊ฐ์ ๋ฐ๋ก ์ง์ ์๊น์ ์ ์ธํ ๋ค๋ฅธ ๋๊ฐ์ง ์๊น์ค์์ ์ต์๊ฐ์ ๋ํ ๊ฐ์
๋๋ค.
- ๊ทธ๋ ๊ธฐ์ ์ด๋ ํ ํ ์๊น์ ํน์ ์ธ๋ฑ์ค์์์ ๊ฐ์ ์ด์ ์๊น์ ์ ์ธํ ๋๊ฐ์ง ์๊น์ค์ ์ต์๊ฐ์ ๊ตฌํด์ผ ํฉ๋๋ค.
- ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ต์ ์ฐพ์๋๊ฐ๋ฉด, ๋ต์ด ๋ ์ ์๋ ๊ฐ์ ๋นจ๊ฐ์, ์ด๋ก์, ํ๋์ 3๊ฐ์ง์
๋๋ค.
- ๋ฐ๋ผ์, ์ด ์ธ๊ฐ์ง ๊ฐ์ ๋ํ dp ๋ฐฐ์ด์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ฉด ๋ต์
๋๋ค.
- ์๋ง, ๊ธ๋ก ์์ฑํด์๋ ์ดํด๊ฐ ๋์ง ์์ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด, solve ๋ฉ์๋์ ๋ก์ง์ ํ๋์ฉ ๋ฐ๋ผ๊ฐ๋ณด์๋ฉด ํ๋ฆ์ ์ดํดํ์ค ์ ์์ ๊ฒ๋๋ค.
๐ป ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int n,answer;
static int[][] arr;
static int[][] dp;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
arr = new int[n][3];
dp = new int[n][3];
answer = 0;
for(int i = 0; i< n; i++){
StringTokenizer st = new StringTokenizer(br.readLine()," ");
for(int j = 0; j< 3; j++){
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
dp[0][0] = arr[0][0];
dp[0][1] = arr[0][1];
dp[0][2] = arr[0][2];
int answer = Math.min(solve(n-1,0),Math.min(solve(n-1,1),solve(n-1,2)));
System.out.println(answer);
}
private static int solve(int idx, int color){
if(dp[idx][color] == 0){
if(color == 0){
dp[idx][0] = Math.min(solve(idx-1,1),solve(idx-1,2)) + arr[idx][0];
}else if(color == 1){
dp[idx][1] = Math.min(solve(idx-1,0),solve(idx-1,2)) + arr[idx][1];
}else if(color == 2){
dp[idx][2] = Math.min(solve(idx-1,0),solve(idx-1,1)) + arr[idx][2];
}
}
return dp[idx][color];
}
}
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2206๋ฒ : ๋ฒฝ ๋ถ์๊ณ ์ด๋ํ๊ธฐ (Java) (0) | 2022.02.12 |
---|---|
๋ฐฑ์ค 11660๋ฒ : ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5(Java) (0) | 2022.01.17 |
๋ฐฑ์ค 15657๋ฒ : N๊ณผ M (8) (Java) (0) | 2022.01.17 |
๋ฐฑ์ค 15654๋ฒ : N๊ณผ M (5) (Java) (0) | 2022.01.17 |
๋ฐฑ์ค 15652๋ฒ : N๊ณผ M (4) (Java) (0) | 2022.01.17 |