티스토리 뷰
다이나믹 프로그래밍을 이용하여 풀이가 가능하다.
현재위치까지 이동가능한 경우의 수(dp[x][y])를 다음 이동가능한 위치(dp[x+move][y], dp[x][y+move])에 더하여
이동가능한 경우를 모두 더하여 준다.
<입력 - maps[][]>
2 3 3 1
1 2 1 3
1 2 3 1
3 1 1 0
<출력 - dp[][]>
1 0 1 0
0 0 0 0
1 1 0 1
1 0 1 3
<결과>
3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package sdk.backjun.dp; | |
import java.util.Scanner; | |
/** | |
* 백준, 1890, 점프 | |
* 다이나믹 프로그래밍 | |
* | |
* @author whitebeardk | |
* | |
*/ | |
public class Problem1890 { | |
public static void main(String[] args) { | |
Scanner sc = new Scanner(System.in); | |
int N = sc.nextInt(); | |
int[][] maps = new int[N][N]; | |
for (int i = 0; i < N; i++) { | |
for (int j = 0; j < N; j++) { | |
maps[i][j] = sc.nextInt(); | |
} | |
} | |
sc.close(); | |
// 값이 커질 수 있으므로 long 형으로 초기화 | |
long[][] dp = new long[N][N]; | |
dp[0][0] = 1; | |
for (int x = 0; x < N; x++) { | |
for (int y = 0; y < N; y++) { | |
int move = maps[x][y]; | |
if (dp[x][y] == 0 || move == 0) | |
continue; | |
if (x + move < N) { | |
dp[x + move][y] += dp[x][y]; | |
} | |
if (y + move < N) { | |
dp[x][y + move] += dp[x][y]; | |
} | |
} | |
} | |
System.out.println(dp[N - 1][N - 1]); | |
} | |
} |
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준][그래프] 2623 음악프로그램 (0) | 2017.07.04 |
---|---|
[백준][위상정렬] 2056 작업 DAG (0) | 2017.06.27 |
[백준][다이나믹] 11048 이동하기 (0) | 2017.06.26 |
[백준][트리] 11437 LCA (0) | 2017.06.22 |
[백준][그래프] 1916 최소비용 구하기 - 다익스트라 알고리즘 (0) | 2017.06.22 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 하이브
- build
- Python
- 파이썬
- 백준
- oozie
- mysql
- 알고리즘
- HDFS
- bash
- 정올
- S3
- SQL
- yarn
- airflow
- emr
- Linux
- 다이나믹
- ubuntu
- SPARK
- hbase
- 하둡
- 오류
- Hadoop
- error
- HIVE
- nodejs
- java
- Tez
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함