01-23 07:25
Recent Posts
Recent Comments
Tags
- ํ์ด์ฌ
- DATABASE
- python
- DB
- ํ๋ก๋ณด๋ ธ
- SQL
- appetizer
- ์จ์ผ๋ํ
- ์คํฝ๋ ํ
- ICT๋ฉํ ๋ง
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- ์คํฝ์ค๋น
- ict๊ณต๋ชจ์
- ํ์ด์
- linux
- ICT
- RaspberryPi
- ์ด๋ธ์
- ์๋ฐ
- ์๋์ด๋ ธ
- Naver Cloud
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Java
- JOBํ๊ณ
- ์กํ๊ณ
- ํ์ด์๊ณต๋ชจ์
- Spring
- API๋ง์ผํ๋ ์ด์ค
- TSQL
- mysql
- Today
- Total
miinsun
[Programmers] ๋ ๋ฐ๋จน๊ธฐ - JAVA (Dynamic Programming) ๋ณธ๋ฌธ
Algorithm/Programmers
[Programmers] ๋ ๋ฐ๋จน๊ธฐ - JAVA (Dynamic Programming)
miinsun 2022. 5. 19. 20:46
๐ฌ ๋ฌธ์ ์ค๋ช
๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ๋ (land)์ ์ด Nํ 4์ด๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ ,
๋ชจ๋ ์นธ์๋ ์ ์๊ฐ ์ฐ์ฌ ์์ต๋๋ค. 1ํ๋ถํฐ ๋ ์ ๋ฐ์ผ๋ฉฐ ํ ํ์ฉ ๋ด๋ ค์ฌ ๋, ๊ฐ ํ์ 4์นธ ์ค ํ ์นธ๋ง ๋ฐ์ผ๋ฉด์ ๋ด๋ ค์์ผ ํฉ๋๋ค.
๋จ, ๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์๋ ํ ํ์ฉ ๋ด๋ ค์ฌ ๋, ๊ฐ์ ์ด์ ์ฐ์ํด์ ๋ฐ์ ์ ์๋ ํน์ ๊ท์น์ด ์์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด,
| 1 | 2 | 3 | 5 |
| 5 | 6 | 7 | 8 |
| 4 | 3 | 2 | 1 |
๋ก ๋ ์ด ์ฃผ์ด์ก๋ค๋ฉด, 1ํ์์ ๋ค๋ฒ์งธ ์นธ (5)๋ฅผ ๋ฐ์์ผ๋ฉด, 2ํ์ ๋ค๋ฒ์งธ ์นธ (8)์ ๋ฐ์ ์ ์์ต๋๋ค.
๋ง์ง๋ง ํ๊น์ง ๋ชจ๋ ๋ด๋ ค์์ ๋, ์ป์ ์ ์๋ ์ ์์ ์ต๋๊ฐ์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ์์ ๊ฒฝ์ฐ, 1ํ์ ๋ค๋ฒ์งธ ์นธ (5), 2ํ์ ์ธ๋ฒ์งธ ์นธ (7), 3ํ์ ์ฒซ๋ฒ์งธ ์นธ (4) ๋ ์ ๋ฐ์ 16์ ์ด ์ต๊ณ ์ ์ด ๋๋ฏ๋ก 16์ return ํ๋ฉด ๋ฉ๋๋ค.
๐ซ ์ ํ ์ฌํญ
- ํ์ ๊ฐ์ N : 100,000 ์ดํ์ ์์ฐ์
- ์ด์ ๊ฐ์๋ 4๊ฐ์ด๊ณ , ๋ (land)์ 2์ฐจ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋๋ค.
- ์ ์ : 100 ์ดํ์ ์์ฐ์
๐จ ์ ์ถ๋ ฅ ์
โ
๐ป Solution.java
์์ ์์ ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ํ์์ ๋ง๋ค ์ ์๋ค.
- dy[i][j] = (๋ณธ์ธ ์ด์ ์ ์ธํ ๊ฐ์ฅ ํฐ dy[i-1][j] + land[i][j])
- ์ด๋ dy[0][j]๋ ์ด๊ธฐ land[0][j] ๊ฐ์ผ๋ก ์ธํ ํด์ค๋ค.
class Solution {
int solution(int[][] land) {
int answer = 0;
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++) {
// ์ด์ ํ์์ ๊ฐ์ฅ ํฐ ๊ฐ ์ฐพ๊ธฐ
int max = 0;
for(int k = 0; k < 4; k++) {
if(j != k) // ๊ฐ์ ์ด์ ์ ์ธ
max = Math.max(max, dp[i - 1][k]);
}
// ๊ฐ์ฅ ํฐ ๊ฐ์ ํ์ฌ ๋
๊ฐ ๋ํด์ฃผ๊ธฐ
dp[i][j] = max + land[i][j];
}
}
// ๋ง์ง๋ง ํ์์ ๊ฐ์ฅ ํฐ ๊ฐ์ด ๋ต์ด ๋๋ค.
for(int i : dp[land.length - 1]) {
answer = Math.max(answer, i);
}
return answer;
}
}
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] 2022 KAKAO BLIND RECRUITMENT : ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ JAVA (0) | 2022.06.17 |
---|---|
[Programmers] ๋ค์ ํฐ ์ซ์ - JAVA (๋ฌธ์์ด ์ฒ๋ฆฌ) (0) | 2022.05.20 |
[Programmers] ์ฌ๋ฐ๋ฅธ ๊ดํธ - JAVA (์คํ) (0) | 2022.05.19 |
[Programmers] ์ต์๊ฐ ๋ง๋ค๊ธฐ - JAVA (์ ๋ ฌ) (0) | 2022.05.19 |
[Programmers] ์ซ์์ ํํ - JAVA (์ฌ๋ผ์ด๋ฉ ์๋์ฐ, ํฌํฌ์ธํฐ) (0) | 2022.05.19 |
Comments