Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 2019 KAKAO BLIND RECRUITMENT
- 트라이
- 파이썬
- 구현
- Spring
- 브루트포스
- 백준
- 플로이드와샬
- 투포인터
- 스택
- 조합
- 2018 KAKAO BLIND RECRUITMENT
- GIT
- 우선순위큐
- 시뮬레이션
- SWEA
- 2020 카카오 인턴십
- 2020 KAKAO BLIND RECRUITMENT
- 2021 KAKAO BLIND RECRUITMENT
- 크루스칼
- 플로이드 와샬
- 백트래킹
- 로봇 청소기
- 비트마스킹
- 프로그래머스
- 다익스트라
- 최소 신장 트리
- BFS
- 이분탐색
- 투 포인터
Archives
- Today
- Total
개발조아
[프로그래머스] 정수 삼각형 파이썬 본문
728x90
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3
코딩테스트 연습 - 정수 삼각형
[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30
programmers.co.kr
간단한 DP 문제이다.
맨 꼭대기에서 양 옆 대각선으로 더해 내려갈때 최대값을 구하는 문제이다.
점화식이랄것도 없다.
현재 점에서 양 옆 위 대각선의 값 중 큰 값을 현재 값에다 더해서 내려가면 된다.
주의할 점이라면 위에서 아래로 내려가면서 위의 대각선을 확인하므로 1부터 시작하고
양끝 점은 대각이 하나만 있으므로 처리해주면 된다.
def solution(triangle):
for x in range(1,len(triangle)):
for y in range(x+1):
if y == 0:
triangle[x][y] += triangle[x-1][y]
elif y==x:
triangle[x][y] += triangle[x-1][y-1]
else:
triangle[x][y] += max(triangle[x-1][y],triangle[x-1][y-1])
return max(triangle[-1])
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 순위 검색 파이썬 (0) | 2021.08.13 |
---|---|
[프로그래머스] 메뉴 리뉴얼 파이썬 (0) | 2021.08.13 |
[프로그래머스] 순위 파이썬 (0) | 2021.08.13 |
[프로그래머스] 네트워크 파이썬 (0) | 2021.08.13 |
[프로그래머스] 디스크 컨트롤러 파이썬 (0) | 2021.08.13 |
Comments