728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/43105?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
난이도
LV3
문제 설명
삼각형 모양으로 꼭대기에서 바닥까지 이어지는 경로 중 숫자의 합이 최대가 되는 경우의 합을 Return해준다.
아래칸으로 이동할때 대각선 방향으로 한칸 오른쪽 왼쪽 으로만 이동 가능하다.
접근법
삼각형 꼭대기 한칸 아래에서부터 위에서 내려올 수 있는 경우에 대해 최대 값을 더해준다.
만약 양끝에 있는 경우에는 가능한 값이 하나밖에 없으므로 별도로 처리해준다.
내려오면서 가능한 수 중 항상 최대 값을 선택하기때문에 마지막 줄에 저장된 가장 큰 수를 Return 해주면 가능한 경로 중 최대의 수이다.
코드
def solution(triangle):
arr = triangle
for i in range(1, len(triangle)):
for j in range(len(arr[i])):
# 가장 왼쪽인 경우
if j == 0:
arr[i][j] += arr[i-1][0]
# 가장 오른쪽인 경우
elif j == len(arr[i])-1 :
arr[i][j] += arr[i-1][-1]
else:
arr[i][j] += max(arr[i-1][j-1], arr[i-1][j])
return max(arr[-1])
동적계획법(Dynamic Programming)?
[동적 계획법] 알고리즘 - 동적 계획법 Dynamic Programming(DP)
동적 계획법(Dynamic Progamming) 하나의 큰 문제를 여러 개의 작은 문제로 나누어 그 결과를 저장하고 다시 큰 문제를 해결할 때 사용하는 알고리즘 설계 기법이다. 각 하위 문제를 먼저 해결하고 저
h-castle.tistory.com
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 최고의 집합 by 파이썬 (Python) (0) | 2023.08.04 |
---|---|
[프로그래머스] 이중 우선 순위 큐 by 파이썬 (Python) : heap (0) | 2023.08.03 |
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT 길 찾기 게임 by 파이썬 (Python) : 트리 순회 (0) | 2023.07.28 |
[프로그래머스] 여행 경로 by 파이썬(Python) : DFS (0) | 2023.07.27 |
[프로그래머스] 네트워크 by 파이썬 (Python) : DFS(깊이 우선 탐색) (0) | 2023.07.26 |