CodingTest/Java
Lv.2 : λ λ°λ¨ΉκΈ°
Soom_1n
2023. 11. 23. 11:11
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ λ§€μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
πΈ λ¬Έμ λΆμ πΈ
- μμμλΆν° μλλ‘ λ λ°λ¨ΉκΈ°νλ©° μ μλ₯Ό μ΅λν ν¬κ² λ§λ λ€.
- μ°μλ μ΄μ λ μ λ°μ μλ μλ€.
- μ μμ μ΅λκ°μ λ°ννλ€.
πΈ λ¬Έμ νμ΄ πΈ
- μ§μ νμ κ°λ€ μ€ κ°μ μ΄μ΄ μλ κ°λ€ μ€ μ΅λκ°μ λμ ν΄ λκ°λ€.
- λ§μ§κ° νμ κ°λ€ μ€ μ΅λκ°μ λ°ννλ€.
πΈ μ½λ πΈ
class Solution {
int solution(int[][] land) {
int[][] dp = new int[land.length][4];
for (int i = 0; i < 4; i++) {
dp[0][i] = land[0][i];
}
for (int i = 1; i < land.length; i++) {
for (int j = 0; j < 4; j++) {
for (int k = 0; k < 4; k++) {
if (j != k) {
dp[i][j] = Math.max(dp[i][j], dp[i-1][k]);
}
}
dp[i][j] += land[i][j];
}
}
int answer = 0;
for (int i = 0; i < 4; i++) {
answer = Math.max(answer,dp[land.length-1][i]);
}
return answer;
}
}
πΈ μ½λ ν΄μ πΈ
- νμ¬ μΈλ±μ€μ μ΅λκ°μ dpλ°°μ΄μ μ μ₯ν΄κ°λ©° κ³μ°νλ€.
- μ§μ νμ κ°λ€ μ€ νμ¬ νκ³Ό λ€λ₯Έ μ΄μ κ° μ€ μ΅λκ°μ μ μ₯νλ€.
- κ³μ°μ λ§λ¬΄λ¦¬νκ³ dpλ°°μ΄μ λ§μ§λ§ ν κ°λ€ μ€ μ΅λκ°μ λ°ννλ€.
πΈ end πΈ
- λ¨μ ꡬνμΌλ‘ λ§ νμ΄ ν λλμΈλ°, μ΄μ κΈΈμ΄κ° 4 μ λ λΏμ΄λΌ ν¨μ¨μ± λ¬Έμ λ μμλ κ² κ°λ€.
- λ€λ₯Έ νμ΄λ₯Ό 보λ, μ¬κ·λ©μλλ‘ λΉΌμ ν μΈλ±μ€λ₯Ό μ μΈν μ΅λκ°μ λ°ννλ λ°©μμΌλ‘ νμ΄ν λ°©λ²λ μμλ€.
728x90