2021. 2. 1. 18:16ใ๐ Algorithm/๐ช๐ป Python ๋ฌธ์ ํ์ด
๋ฌธ์ ์ค๋ช
์์ ๊ฐ์ ์ผ๊ฐํ์ ๊ผญ๋๊ธฐ์์ ๋ฐ๋ฅ๊น์ง ์ด์ด์ง๋ ๊ฒฝ๋ก ์ค, ๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋ณด๋ ค๊ณ ํฉ๋๋ค. ์๋ ์นธ์ผ๋ก ์ด๋ํ ๋๋ ๋๊ฐ์ ๋ฐฉํฅ์ผ๋ก ํ ์นธ ์ค๋ฅธ์ชฝ ๋๋ ์ผ์ชฝ์ผ๋ก๋ง ์ด๋ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด 3์์๋ ๊ทธ ์๋์นธ์ 8 ๋๋ 1๋ก๋ง ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค.
์ผ๊ฐํ์ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฐฐ์ด triangle์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฑฐ์ณ๊ฐ ์ซ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- ์ผ๊ฐํ์ ๋์ด๋ 1 ์ด์ 500 ์ดํ์ ๋๋ค.
- ์ผ๊ฐํ์ ์ด๋ฃจ๊ณ ์๋ ์ซ์๋ 0 ์ด์ 9,999 ์ดํ์ ์ ์์ ๋๋ค.
ํ์ด ๊ณผ์
bottom up ๋ฐฉ์์ผ๋ก ๋งจ ์๋ํ๋ถํฐ max๋ฅผ ๊ตฌํด ๋ํด์ฃผ๋๋ฐ ์ด๋, ํ์นธ ์ค๋ฅธ์ชฝ๊ณผ ์์ชฝ์ผ๋ก๋ง ๊ฐ๋ฅํ๋ฏ๋ก
triangle[i][j] += max(triangle[i + 1][j], triangle[i + 1][j + 1]) ๊ท์น์ ์ฌ์ฉํ์ฌ ์ต๋๊ฐ ํฉ์ ๊ตฌํด์ฃผ์๋ค.
return ์์๋ triangle[0][0]์ ๋ฆฌํดํด์ฃผ์๋ค.
def solution(triangle):
for i in range(len(triangle) - 2, -1, -1):
for j in range(len(triangle[i]) - 1, -1, -1):
triangle[i][j] += max(triangle[i + 1][j], triangle[i + 1][j + 1])
return triangle[0][0]
if __name__ == "__main__":
print(solution([[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]]))
'๐ Algorithm > ๐ช๐ป Python ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level3] ๋ฑ๊ตฃ๊ธธ (0) | 2021.02.01 |
---|---|
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level3] 2*n ํ์ผ๋ง (0) | 2021.02.01 |
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level1] ์นด์นด์ค - ์ ๊ท ์์ด๋ ์ถ์ฒ (0) | 2021.01.27 |