Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 14585] 사수빈탕 본문
반응형
완전탐색으로 풀기엔 주어진 시간이 너무 짧다.
사탕배열을 만들어 사탕이 있는지 여부를 저장해놓고
DP배열로 매 탐색마다 최대로 먹을수 있는 사탕의 개수를 갱신한다.
public class Main {
static boolean a[][];
static int dp[][];
public static int findCandy(int x, int y, int m) {
if(x == 301 || y == 301) return 0;
if(m == 0) return 0;
if(dp[x][y] != -1) return dp[x][y];
if(a[x][y]) dp[x][y] = m;
else dp[x][y] = 0;
dp[x][y] += Math.max(findCandy(x+1, y, m-1), findCandy(x, y+1, m-1));
return dp[x][y];
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
a = new boolean[301][301];
dp = new int[301][301];
for(int i=0; i<301; i++)
for(int j=0; j<301; j++)
dp[i][j] = -1;
for(int i=0; i<n; i++) {
int x = sc.nextInt();
int y = sc.nextInt();
a[x][y] = true;
}
System.out.println(findCandy(0, 0, m));
}
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 16677] 악마 게임 (0) | 2019.07.20 |
---|---|
[백준 16676] 근우의 다이어리 꾸미기 (0) | 2019.07.20 |
[백준 14584] 암호 해독 (0) | 2019.07.17 |
[백준 14582] 오늘도 졌다 (0) | 2019.07.17 |
[백준 11947] 이런 반전이 (0) | 2019.07.17 |
Comments