https://school.programmers.co.kr/learn/courses/30/lessons/12971
DP를 사용하는데, idx 0번부터 시작하는 것과 1번부터 시작하는 것으로 크게 2가지로 나누어 구현하였다.
def solution(sticker):
L = len(sticker)
if L == 1: return sticker[0]
DP1 = [0] * L
DP1[0], DP1[1] = sticker[0], sticker[0]
for i in range(2, (L - 1)):
DP1[i] = max(DP1[i - 1], DP1[i - 2] + sticker[i])
DP2 = [0] * L
DP2[0], DP2[1] = 0, sticker[1]
for i in range(2, L):
DP2[i] = max(DP2[i - 1], DP2[i - 2] + sticker[i])
return max(max(DP1), max(DP2))
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] / [Level 3] / [Python] 보석 쇼핑 (0) | 2024.02.21 |
---|---|
[프로그래머스] / [Level 3] / [Python] 불량 사용자 (0) | 2024.02.20 |
[프로그래머스] / [Level 3] / [Python] 기지국 설치 (0) | 2024.02.16 |
[프로그래머스] / [Level 3] / [Python] 숫자 게임 (0) | 2024.02.16 |
[프로그래머스] / [Level 3] / [Python] 단어 변환 (0) | 2024.02.16 |