Skip to content

Commit 8dba370

Browse files
committed
add PROGRAMMERS-12913
1 parent 567fe84 commit 8dba370

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
| PROGRAMMERS-1844 |[python](programmers/problem1844)|[게임 맵 최단거리 (The Shortest Distance on Game Map)](https://school.programmers.co.kr/learn/courses/30/lessons/1844)|
88
| PROGRAMMERS-12909 :star:|[java](programmers/problem12909)|[올바른 괄호 (A Correct Parentheses)](https://school.programmers.co.kr/learn/courses/30/lessons/12909)|
99
| PROGRAMMERS-12911 |[java](programmers/problem12911)|[다음 큰 숫자 (Next Big Number)](https://school.programmers.co.kr/learn/courses/30/lessons/12911)|
10+
| PROGRAMMERS-12913 |[java](programmers/problem12913)|[땅따먹기 (Hopscotch)](https://school.programmers.co.kr/learn/courses/30/lessons/12913)|
1011
| PROGRAMMERS-12914 |[java](programmers/problem12914)|[멀리 뛰기 (Long Jump)](https://school.programmers.co.kr/learn/courses/30/lessons/12914)|
1112
| PROGRAMMERS-12924 :star:|[java](programmers/problem12924)|[숫자의 표현 (Number Expressions)](https://school.programmers.co.kr/learn/courses/30/lessons/12924)|
1213
| PROGRAMMERS-12927 |[java](programmers/problem12927)|[야근 지수 (Overtime Index)](https://school.programmers.co.kr/learn/courses/30/lessons/12927)|
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
packageproblem12913;
2+
3+
/**
4+
* DFS solution
5+
* this solution is not accepted because of time limit exceeded
6+
*/
7+
publicclassHopscotch_DFS{
8+
publicstaticvoidmain(String[] args){
9+
finalvarsol = newHopscotch_DFS();
10+
finalvarland = newint[][]{{1, 2, 3, 5},{5, 6, 7, 8},{4, 3, 2, 1}};
11+
finalvarexpected = 16;
12+
finalvarresult = sol.solution(land);
13+
System.out.println("expected: " + expected + " result: " + result);
14+
}
15+
16+
publicintsolution(int[][] land){
17+
varmax = 0;
18+
for (vari = 0; i < land[0].length; i++){
19+
max = Math.max(max, dfs(land, 0, i, 0));
20+
}
21+
returnmax;
22+
}
23+
24+
privateintdfs(int[][] land, introw, intcol, intsum){
25+
if (row == land.length){
26+
returnsum;
27+
}
28+
varmax = 0;
29+
for (vari = 0; i < land[row].length; i++){
30+
if (i != col){
31+
max = Math.max(max, dfs(land, row + 1, i, sum + land[row][i]));
32+
}
33+
}
34+
returnmax;
35+
}
36+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
packageproblem12913;
2+
3+
importjava.util.Arrays;
4+
5+
/**
6+
* DP solution
7+
*/
8+
publicclassHopscotch_DP{
9+
publicstaticvoidmain(String[] args){
10+
finalvarsol = newHopscotch_DP();
11+
finalvarland = newint[][]{{1, 2, 3, 5},{5, 6, 7, 8},{4, 3, 2, 1}};
12+
finalvarexpected = 16;
13+
finalvarresult = sol.solution(land);
14+
System.out.println("expected: " + expected + " result: " + result);
15+
}
16+
17+
publicintsolution(int[][] land){
18+
finalvardp = newint[land.length][land[0].length];
19+
// copy first row
20+
System.arraycopy(land[0], 0, dp[0], 0, land[0].length);
21+
22+
// i = row, j and k = col
23+
for (vari = 1; i < land.length; i++){
24+
for (varj = 0; j < land[i].length; j++){
25+
for (vark = 0; k < land[i].length; k++){
26+
if (j != k){
27+
dp[i][j] = Math.max(dp[i][j], dp[i - 1][k] + land[i][j]);
28+
}
29+
}
30+
}
31+
}
32+
33+
varmax = 0;
34+
for (vari = 0; i < land[0].length; i++){
35+
max = Math.max(max, dp[land.length - 1][i]);
36+
}
37+
returnmax;
38+
}
39+
}

0 commit comments

Comments
(0)