Algorithm/๋ฐฑ์ค
๋ฐฑ์ค 17069๋ฒ - ํ์ดํ ์ฎ๊ธฐ๊ธฐ 2
giraffe_
2022. 10. 5. 09:21
https://www.acmicpc.net/problem/17069
17069๋ฒ: ํ์ดํ ์ฎ๊ธฐ๊ธฐ 2
์ ํ์ด๊ฐ ์ ์ง์ผ๋ก ์ด์ฌํ๋ค. ์ ์ง์ ํฌ๊ธฐ๋ N×N์ ๊ฒฉ์ํ์ผ๋ก ๋ํ๋ผ ์ ์๊ณ , 1×1ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ๊ฐ๊ฐ์ ์นธ์ (r, c)๋ก ๋ํ๋ผ ์ ์๋ค. ์ฌ๊ธฐ์ r์ ํ์ ๋ฒํธ, c๋ ์ด์
www.acmicpc.net
9์ 30์ผ ํ์ด
https://www.acmicpc.net/problem/17070
17070๋ฒ: ํ์ดํ ์ฎ๊ธฐ๊ธฐ 1
์ ํ์ด๊ฐ ์ ์ง์ผ๋ก ์ด์ฌํ๋ค. ์ ์ง์ ํฌ๊ธฐ๋ N×N์ ๊ฒฉ์ํ์ผ๋ก ๋ํ๋ผ ์ ์๊ณ , 1×1ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ๊ฐ๊ฐ์ ์นธ์ (r, c)๋ก ๋ํ๋ผ ์ ์๋ค. ์ฌ๊ธฐ์ r์ ํ์ ๋ฒํธ, c๋ ์ด์
www.acmicpc.net
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class b17069 {
static int N;
static int[][] graph;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
graph = new int[N + 1][N + 1];
for(int i = 1; i < N + 1; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j = 1; j < N + 1; j++) {
graph[i][j] = Integer.parseInt(st.nextToken());
}
}
//๊ตฌํ
long[][][] dp = new long[N + 1][N + 1][3]; //0 : ๊ฐ๋ก, 1 : ์ธ๋ก, 2: ๋๊ฐ์
dp[1][2][0] = 1;
for(int i = 1; i <= N; i++) {
for(int j = 3; j <= N; j++) {
if(graph[i][j] != 1) {
dp[i][j][0] = dp[i][j - 1][0] + dp[i][j - 1][2];
dp[i][j][1] = dp[i - 1][j][1] + dp[i - 1][j][2];
if(graph[i - 1][j] != 1 && graph[i][j - 1] != 1) {
dp[i][j][2] = dp[i - 1][j - 1][0] + dp[i - 1][j - 1][1] + dp[i - 1][j - 1][2];
}
}
}
}
long answer = dp[N][N][0] + dp[N][N][1] + dp[N][N][2];
System.out.println(answer);
}
}