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 |
Tags
- JavaScript
- C++
- java
- SW
- 프로그래머스
- 이코테
- react
- 테코테코
- maeil-mail
- 항해99
- json-server
- axios
- Algorithm
- sw expert academy
- 항해플러스
- redux-saga
- 코딩테스트합격자되기
- programmers
- createSlice
- redux-toolkit
- react-redux
- Python
- 매일메일
- 자바
- redux
- 리액트
- 알고리즘
- useDispatch
- react-router
- Get
Archives
- Today
- Total
Binary Journey
[프로그래머스] 정수 삼각형 본문
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
def solution(triangle):
answer = triangle[0][0]
if len(triangle) == 1:
return answer
d = [[0] * (i + 1) for i in range(len(triangle))]
d[0][0] = triangle[0][0]
for i in range(1, len(triangle)):
for j in range(len(triangle[i])):
if j == 0: # 삼각형 i열 0번째
d[i][j] = d[i-1][j] + triangle[i][j];
elif j == i: # 삼각형 i열 마지막
d[i][j] = d[i-1][j-1] + triangle[i][j];
else:
d[i][j] = max(d[i-1][j-1], d[i-1][j]) + triangle[i][j];
answer = max(answer, d[i][j]);
return answer
** 추천 많이 받은 것 중에 제일 좋았던 풀이
def solution(triangle):
for t in range(1, len(triangle)):
for i in range(t+1):
if i == 0:
triangle[t][0] += triangle[t-1][0]
elif i == t:
triangle[t][-1] += triangle[t-1][-1]
else:
triangle[t][i] += max(triangle[t-1][i-1], triangle[t-1][i])
return max(triangle[-1])
방식은 똑같은데 1) 더 간결하고 2) 내 식보다 효율적이고 3) 이게 dp에 맞아서 가져옴
반응형
'프로그래머스 > level 3' 카테고리의 다른 글
[프로그래머스] 이중우선순위큐 (0) | 2022.06.23 |
---|---|
[프로그래머스] 베스트 앨범 (0) | 2022.05.20 |
[프로그래머스] 순위 (0) | 2022.04.21 |
[프로그래머스] 가장 먼 노드 (0) | 2022.04.21 |
[프로그래머스] 헤비 유저가 소유한 장소 (MySQL) (0) | 2021.08.10 |