프로그래머스 > 코딩테스트 연습 > 동적계획법(Dynamic Programming)
등굣길
import java.util.*;
class Solution {
public int solution(int m, int n, int[][] puddles) {
int[][] map = new int[m+1][n+1];
boolean[][] check = new boolean[m+1][n+1];
for (int i = 0; i < puddles.length; i++) {
int x = puddles[i][0];
int y = puddles[i][1];
check[x][y] = true;
}
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (check[i][j]) continue;
if (i == 1 && j == 1) {
map[i][j] = 1;
} else {
map[i][j] = (map[i-1][j] + map[i][j-1]) % 1000000007;
}
}
}
return map[m][n] % 1000000007;
}
}
테스트 1 〉 통과 (0.04ms, 73.6MB)
테스트 2 〉 통과 (0.03ms, 77.3MB)
테스트 3 〉 통과 (0.03ms, 73.7MB)
테스트 4 〉 통과 (0.03ms, 77.9MB)
테스트 5 〉 통과 (0.04ms, 72.9MB)
테스트 6 〉 통과 (0.03ms, 74.1MB)
테스트 7 〉 통과 (0.05ms, 72.6MB)
테스트 8 〉 통과 (0.04ms, 76.8MB)
테스트 9 〉 통과 (0.04ms, 77.8MB)
테스트 10 〉 통과 (0.03ms, 72.7MB)
테스트 1 〉 통과 (0.61ms, 52.1MB)
테스트 2 〉 통과 (0.18ms, 53.1MB)
테스트 3 〉 통과 (0.37ms, 51.8MB)
테스트 4 〉 통과 (0.49ms, 52MB)
테스트 5 〉 통과 (0.43ms, 52.1MB)
테스트 6 〉 통과 (0.70ms, 52.7MB)
테스트 7 〉 통과 (0.38ms, 51.7MB)
테스트 8 〉 통과 (0.51ms, 52.3MB)
테스트 9 〉 통과 (0.56ms, 52.1MB)
테스트 10 〉 통과 (0.46ms, 52.4MB)
int[][] map = new int[m+1][n+1]; boolean[][] check = new boolean[m+1][n+1];
for (int i = 0; i < puddles.length; i++) { int x = puddles[i][0]; int y = puddles[i][1]; check[x][y] = true; }
for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { if (check[i][j]) continue; if (i == 1 && j == 1) { map[i][j] = 1; } else { map[i][j] = (map[i-1][j] + map[i][j-1]) % 1000000007; } } }