728x90
๋ฐ์ํ
๋ฌธ์ ์ค๋ช
์์ ๊ฐ์ ์ผ๊ฐํ์ ๊ผญ๋๊ธฐ์์ ๋ฐ๋ฅ๊น์ง ์ด์ด์ง๋ ๊ฒฝ๋ก ์ค, ๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋ณด๋ ค๊ณ ํฉ๋๋ค. ์๋ ์นธ์ผ๋ก ์ด๋ํ ๋๋ ๋๊ฐ์ ๋ฐฉํฅ์ผ๋ก ํ ์นธ ์ค๋ฅธ์ชฝ ๋๋ ์ผ์ชฝ์ผ๋ก๋ง ์ด๋ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด 3์์๋ ๊ทธ ์๋์นธ์ 8 ๋๋ 1๋ก๋ง ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค.
์ผ๊ฐํ์ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฐฐ์ด triangle์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฑฐ์ณ๊ฐ ์ซ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- ์ผ๊ฐํ์ ๋์ด๋ 1 ์ด์ 500 ์ดํ์ ๋๋ค.
- ์ผ๊ฐํ์ ์ด๋ฃจ๊ณ ์๋ ์ซ์๋ 0 ์ด์ 9,999 ์ดํ์ ์ ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
triangle | result |
[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] | 30 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์์.
ํ์ด
- ์ฐ์ต๋์ ๊ณํ๋ฒ(Dynamic Programming)์ผ๋ก ํ๋ผ๋ ๋ฌธ์ .
- ์ด๊ฑธ ๋งค๋ฒ ์คํจํด์ ์์ฑํ๋ค ๋ง๊ณ ์์ฑํ๋ค ๋ง๊ณ ํ๋ค๊ฐ ์ค๋ ๋ค์ ํ์ด๋ณด์๊ณ ! ํ๋ฉด์ ํด๋ฆญ!
- ๋ฌธ์ ๋ฅผ ์ ๋ฒ์ ๋์ถฉ ์ฝ์๋ค๊ฐ ์ํฐ๋ฆฌ์ฒ๋ผ ์ง๊ณ ๊ณ์ ์คํจํด์ ์ง์ฆ๋์ ๋ฎ์๋ ํ์ ์ ๋ณด๋ ใ ใ
- ํํํ... ์ด๊ฑฐ ๋ญ... ์์ ๋ฉ์ฒญ์ด๊ตฌ๋ง?
- ๋ค์ ํผ ์ฝ๋
def solution(triangle):
answer = 0
l = len(triangle)
for i in range(1,l): #๋์ด
for j in range(i+1): #ํญ
#print(i,j,triangle[i][j])
if j == 0:
triangle[i][j] += triangle[i-1][0]
elif j == i:
triangle[i][j] += triangle[i-1][j-1]
else:
_a = triangle[i][j] + triangle[i-1][j]
_b = triangle[i][j] + triangle[i-1][j-1]
triangle[i][j] = max(_a, _b)
return max(triangle[l-1])
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.05ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.09ms, 10.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.40ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (2.67ms, 10.2MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.75ms, 10.2MB)
ํ
์คํธ 7 ใ ํต๊ณผ (1.48ms, 10.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.31ms, 10.3MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.36ms, 10.3MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (45.53ms, 14.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (35.99ms, 13.1MB)
ํ
์คํธ 3 ใ ํต๊ณผ (51.78ms, 14.7MB)
ํ
์คํธ 4 ใ ํต๊ณผ (45.78ms, 14.2MB)
ํ
์คํธ 5 ใ ํต๊ณผ (38.96ms, 13.9MB)
ํ
์คํธ 6 ใ ํต๊ณผ (52.67ms, 14.8MB)
ํ
์คํธ 7 ใ ํต๊ณผ (48.53ms, 14.5MB)
ํ
์คํธ 8 ใ ํต๊ณผ (40.50ms, 13.7MB)
ํ
์คํธ 9 ใ ํต๊ณผ (38.69ms, 14MB)
ํ
์คํธ 10 ใ ํต๊ณผ (45.04ms, 14.4MB)
- ๋น์ทํ ์ฝ๋๊ฐ ์๋ค.
- ๋ถํ์ํ ์ฝ๋๊ฐ ์์ด ๊น๋ํ๋ค.
def solution(triangle):
dp = []
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 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.06ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.15ms, 10.2MB)
ํ
์คํธ 5 ใ ํต๊ณผ (1.09ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.54ms, 10.1MB)
ํ
์คํธ 7 ใ ํต๊ณผ (1.34ms, 10.2MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.48ms, 10.2MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.22ms, 10.2MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (37.36ms, 14.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (29.44ms, 13.1MB)
ํ
์คํธ 3 ใ ํต๊ณผ (42.58ms, 14.7MB)
ํ
์คํธ 4 ใ ํต๊ณผ (39.75ms, 14.2MB)
ํ
์คํธ 5 ใ ํต๊ณผ (31.95ms, 13.9MB)
ํ
์คํธ 6 ใ ํต๊ณผ (44.34ms, 14.7MB)
ํ
์คํธ 7 ใ ํต๊ณผ (40.10ms, 14.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (31.37ms, 13.7MB)
ํ
์คํธ 9 ใ ํต๊ณผ (35.69ms, 14MB)
ํ
์คํธ 10 ใ ํต๊ณผ (37.57ms, 14.4MB)
- ๋๋ค ๋ณํ ใ ใ
solution = lambda t, l = []: max(l) if not t else solution(t[1:], [max(x,y)+z for x,y,z in zip([0]+l, l+[0], t[0])])
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.01ms, 9.99MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.08ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.21ms, 10MB)
ํ
์คํธ 5 ใ ํต๊ณผ (1.47ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.47ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.78ms, 10.2MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.35ms, 10.2MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.13ms, 10.2MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (24.82ms, 19.4MB)
ํ
์คํธ 2 ใ ํต๊ณผ (19.44ms, 17.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (28.41ms, 20.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (25.08ms, 19.4MB)
ํ
์คํธ 5 ใ ํต๊ณผ (23.09ms, 18.8MB)
ํ
์คํธ 6 ใ ํต๊ณผ (29.03ms, 20.7MB)
ํ
์คํธ 7 ใ ํต๊ณผ (26.60ms, 20MB)
ํ
์คํธ 8 ใ ํต๊ณผ (20.50ms, 18.5MB)
ํ
์คํธ 9 ใ ํต๊ณผ (21.19ms, 18.9MB)
ํ
์คํธ 10 ใ ํต๊ณผ (27.57ms, 20.3MB)
๋ชป ํ๊ณ ๋๋ ๊ฑฐ๋ฆฌ๋ ๋ฌธ์ ๋ค๋ ์๊ฐ์ด ์ง๋, ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋ด๊ณต์ด ์์ด๋ฉด ์ฝ๊ฒ ํด๋ฆฌ์ด๊ฐ ๋๋๊ตฌ๋...
728x90
๋ฐ์ํ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์๊ถ๋ํ (ํฌ๊ธฐ) (0) | 2023.02.23 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค [3์ฐจ] ํ์ผ๋ช ์ ๋ฆฌ (1) | 2023.02.23 |
ํ๋ก๊ทธ๋๋จธ์ค ํํ ๊ฐ๋ฅํ ์ด์งํธ๋ฆฌ (ํฌํ์ด์งํธ๋ฆฌ) (0) | 2023.02.22 |
ํ๋ก๊ทธ๋๋จธ์ค ํ๋ณดํค (0) | 2023.02.22 |
ํ๋ก๊ทธ๋๋จธ์ค ์ต์ต๋จ์ ์ธ์ฐ์ (0) | 2023.02.22 |