정수 삼각형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 내 풀이
- 인덱스 에러
import math
def solution(triangle):
answer = 0
n=len(triangle)
#dp 테이블
d=[[0 for j in range(i+1)] for i in range(n)]
d[0]=triangle[0]
for i in range(1, n):
for j in range(i+1):
if j==0 or j==i:
d[i][j]=triangle[i][j]+d[i-1][j]
elif j==1:
d[i][j]=triangle[i][j]+max(d[i-1][0],d[i-1][1])
elif j%2==0:
d[i][j]=triangle[i][j]+max(d[i-1][j//2],d[i-1][j//2+1])
elif j%2!=0:
d[i][j]=triangle[i][j]+max(d[i-1][math.ceil(j/2)],d[i-1][math.ceil(j/2)+1])
return max(d[n-1])
- 다른 사람 풀이
- 인덱스 주의해서 보기!!!
- j==i 일때 d[i-1][j-1] 에 넣어야 한다.
- -> 1열 전의 마지막 인덱스는 하나 작기 때문
- 짝홀 나눌 필요 없이 d[i-1][j-1], d[i-1][j] 중 큰 값 더하면 됨
import math
def solution(triangle):
answer = 0
n=len(triangle)
#dp 테이블
d=[[0 for j in range(i+1)] for i in range(n)]
d[0]=triangle[0]
for i in range(1, n):
for j in range(i+1):
if j==0:
d[i][j]=triangle[i][j]+d[i-1][j]
elif j==i:
d[i][j]=triangle[i][j]+d[i-1][j-1]
else:
d[i][j]=triangle[i][j]+max(d[i-1][j-1],d[i-1][j])
return max(d[n-1])
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 귤고르기 (0) | 2023.01.28 |
|---|---|
| [프로그래머스] [Level 2] 짝지어 제거하기 (0) | 2023.01.20 |
| [프로그래머스] [Level 3] [Heap] 디스크 컨트롤러 (0) | 2022.10.23 |
| [프로그래머스] [Level 3] [해시] 베스트 앨범 (0) | 2022.10.06 |
| [프로그래머스] [Level 2] [2018 KAKAO BLIND RECRUITMENT 1차] 뉴스 클러스터링 (0) | 2022.09.27 |