๐ ๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/43105
๋ฌธ์ ์ค๋ช
์์ ๊ฐ์ ์ผ๊ฐํ์ ๊ผญ๋๊ธฐ์์ ๋ฐ๋ฅ๊น์ง ์ด์ด์ง๋ ๊ฒฝ๋ก ์ค, ๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋ณด๋ ค๊ณ ํฉ๋๋ค. ์๋ ์นธ์ผ๋ก ์ด๋ํ ๋๋ ๋๊ฐ์ ๋ฐฉํฅ์ผ๋ก ํ ์นธ ์ค๋ฅธ์ชฝ ๋๋ ์ผ์ชฝ์ผ๋ก๋ง ์ด๋ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด 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 |
โ๏ธ ํ์ด
๋งจ ๊ผญ๋๊ธฐ๋ฅผ ๋ ๋ฒจ 0์ด๋ผ ํ๋ค๋ฉด, ๊ทธ ๋ค์ ์ค์ธ ๋ ๋ฒจ 1๋ถํฐ ๋ ๋ฒจ ์์ ์ซ์๋ค์ ๋ชจ๋ ์กฐํํ๋ค.
โป๏ธ ์ผ์ชฝ ์๋จ ์ซ์: ๋ ๋ฒจ์ ํ ๋จ๊ณ ์ ๊ณ , ๋ ๋ฒจ ์์์ ์์น ์ธ๋ฑ์ค๋ ์ง๊ธ๋ณด๋ค ํ๋ ์ ์ ์ซ์.
โป๏ธ ์ค๋ฅธ์ชฝ ์๋จ ์ซ์: ๋ ๋ฒจ์ ํ ๋จ๊ณ ์ ๊ณ , ๋ ๋ฒจ ์์์ ์์น ์ธ๋ฑ์ค๋ ์ง๊ธ๊ณผ ๊ฐ์ ์ซ์.
๋งค ์ซ์๋ง๋ค ์ผ์ชฝ ์๋จ/ ์ค๋ฅธ์ชฝ ์๋จ์ ํ์ธํ๋ฉฐ ๋ ํฐ ์ชฝ์ ๋ํด์ค๋ค.
๋จ, ์ซ์ ์์น์ ๋ฐ๋ผ์ ๋ ์ค ํ๋๊ฐ ์์ ์๋ ์์ผ๋ ์ผ์ด์ค๋ฅผ ๋๋ ์ค๋ค.
๐ป ์์ค์ฝ๋: ํ์ด์ฌ(Python)
def solution(triangle):
answer = 0
for lv in range(1, len(triangle)):
for n in range(len(triangle[lv])):
if n==0:
triangle[lv][n] += triangle[lv-1][n]
elif lv == n:
triangle[lv][n] += triangle[lv-1][n-1]
else:
triangle[lv][n] += max(triangle[lv-1][n-1], triangle[lv-1][n])
answer = max(answer, triangle[lv][n])
return answer
triangle = [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]]
print(solutin(triangle))
๐ ๐ ๐
๏ผฐ๏ฝ๏ฝ๏ฝ๏ฝ ๏ฝ ๏ผข๏ฝ ๏ผณ๏ผก๏ผน
๐๐ฉ๐ข๐ฏ๐ฌ๐ด ๐ง๐ฐ๐ณ ๐ณ๐ฆ๐ข๐ฅ๐ช๐ฏ๐จ