[프로그래머스] 땅따먹기 (파이썬, javascript )
728x90
반응형
dp 문제
열이 연속으로 같지 않게 최대값 구하는 문제
1. 파이썬
def solution(land):
for i in range(1,len(land)):
for j in range(4):
land[i][j]+=max(land[i-1][:j]+land[i-1][j+1:])
return max(land[len(land)-1])
2. javascript
function solution(land) {
var answer = 0;
let n=land.length;
let dp=Array(n).fill(0).map(()=>Array(4).fill(0));
for(let j=0;j<land[0].length;j++){
dp[0][j]=land[0][j];
}
for(let i=1;i<land.length;i++){
for(let j=0;j<4;j++){
for(let k=0;k<4;k++ ){
if(j==k)continue;
dp[i][j]=Math.max(dp[i][j],dp[i-1][k]+land[i][j]);
}
}
}
for(let j=0;j<4;j++){
answer=Math.max(answer,dp[land.length-1][j]);
}
return answer;
}
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] level3. 베스트앨범 (파이썬, javascript) (0) | 2020.09.21 |
---|---|
[프로그래머스] 1차 캐시 (파이썬, javascript) (0) | 2020.09.21 |
[프로그래머스] 영어 끝말잇기 (파이썬) (0) | 2020.09.16 |
[프로그래머스] h-index (파이썬, javascript) (0) | 2020.09.16 |
[프로그래머스] 짝지어 제거하기 (파이썬, javascript) (0) | 2020.09.16 |
TAGS.