티스토리 뷰
1# 문제
https://programmers.co.kr/learn/courses/30/lessons/42898?language=java
2# 풀이
이 문제의 경우 DP를 이용한 풀면 쉽게 풀린다.
오른쪽과 아래쪽으로 밖에 갈 수 없기 때문에 임의의 위치(i,j)에서 경우의 수는 (i-1,j) + (i,j-1) 이다.
public static int solution(int m, int n, int[][] puddles) {
int answer = 0;
int[][] matrix = new int[n + 1][m + 1];
// puddles 표시
for (int i = 0; i < puddles.length; i++) {
matrix[puddles[i][1]][puddles[i][0]] = -1;
}
// 초기값 설정
matrix[1][1] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (i == 1 && j == 1)
continue;
if (matrix[i][j] == -1) {
matrix[i][j] = 0;
} else {
// 효율성 테스트시 int 값을 넘어갈 수 있기 때문에 항상 나눠줌
matrix[i][j] = (matrix[i - 1][j] + matrix[i][j - 1]) % 1000000007;
}
}
}
answer = matrix[n][m];
return answer;
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- php
- 카프카
- jeus8.5
- 도커
- API Gateway
- SynchronousQueue
- cleanup policies
- kafka with raft
- volatile
- 제우스8.5
- 제우스8
- multiple datasource
- 보관주기
- 넥서스 보관주기
- 네트워크
- db 두개
- 넥서스 파일 보관주기
- 티스토리챌린지
- AWS
- 스레드 동기화
- cleanup policy
- 다중 데이터소스
- docker
- jeus8
- 쓰레드 변수
- 주키퍼 없는 카프카
- 오블완
- kafka without zookeeper
- s3
- 제우스 로그
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함