[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ซ ์ ์ ์ผ๊ฐํ / python
๐จโ๐ซ ์ ์ ์ผ๊ฐํ ๋ฌธ์ ํ์ด๋ณด๊ธฐ
๐ ๋์ ์ฝ๋
def solution(tri):
m_lst = []
for row in tri:
lst = []
if len(m_lst) == 0:
lst.append(row[0]);
else:
for idx, num in enumerate(row):
if idx == 0:
lst.append(m_lst[-1][idx] + num)
elif idx == len(row)-1:
lst.append(m_lst[-1][-1] + num)
else:
lst.append(max(m_lst[-1][idx-1],m_lst[-1][idx]) + num)
m_lst.append(lst)
return max(m_lst[-1])
DP(Dynamic Programming, ๋์ ๊ณํ๋ฒ)์ ์ด์ฉํด ํด๊ฒฐํ ๋ฌธ์ ์ ๋๋ค. DP์ ๊ณํ์ ๋ฐ๋ผ ์ ์ฒด ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก ๋๋์ด์ ํ๊ฒ ์ต๋๋ค. ์ฃผ์ด์ง ์ผ๊ฐํ์ด ์๋ ๊ทธ๋ณด๋ค ์์ ์ผ๊ฐํ์ ๋ํ ๋ฌธ์ ๋ฅผ ํ์ด์ ๊ทธ ํฌ๊ธฐ๋ฅผ ์ ์ ํค์์ ์ฃผ์ด์ง ์ผ๊ฐํ๊น์ง ๋์๊ฐ๋๋ค.
m_lst
๋ผ๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์ด ์ด ๊ณณ์๋ ์๋๋ก ๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ์ ๊ฒฐ๊ณผ๊ฐ๋ง ์ ์ฅํ๋๋ก ์ฝ๋๋ฅผ ์งญ๋๋ค. ๋ค์์ผ๋ก DP์ ๋ค์ ํน์ง์ธ ๋ค๋ฅธ ์ํ์ ๊ฒฐ๊ณผ๊ฐ์ ์ฌ์ฉํ์ฌ ์์ ์ผ๊ฐํ์์์ ํน์ ์์น์ ํฉ์ ์ต๋๊ฐ์ ์ด์ฉํ์ฌ ๋ค์ ์ต๋๊ฐ์ ๊ตฌํฉ๋๋ค. ์ด๋ฐ ์์ผ๋ก ๋ง์ง๋ง๊น์ง ๊ตฌํ ๋ค max(m_lst[-1])
์ ์ด์ฉํ์ฌ ์ผ๊ฐํ์ ๋งจ ์๋์นธ์ ์ต๋๊ฐ ๋ฐฐ์ด์ค ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฐํํ๋ฉด ๋ฌธ์ ๊ฐ ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค.
Written with StackEdit.
'Algorithm > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ป ๊ธฐ๋ฅ ๊ฐ๋ฐ / python (2) | 2019.02.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ทโโ๏ธ ํ์ผ ์ฅ์๋ฌผ / python (0) | 2019.02.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ซ ์ ์ ์ผ๊ฐํ / python (0) | 2019.02.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] โพ ์ซ์ ์ผ๊ตฌ / python (4) | 2019.02.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ต๏ธโโ๏ธ ์์ ์ฐพ๊ธฐ / python (0) | 2019.02.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จ ์นดํซ ๋ฌธ์ / python (1) | 2019.02.15 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ป ๊ธฐ๋ฅ ๊ฐ๋ฐ / python
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ป ๊ธฐ๋ฅ ๊ฐ๋ฐ / python
2019.02.18 -
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ทโโ๏ธ ํ์ผ ์ฅ์๋ฌผ / python
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ทโโ๏ธ ํ์ผ ์ฅ์๋ฌผ / python
2019.02.18 -
[ํ๋ก๊ทธ๋๋จธ์ค] โพ ์ซ์ ์ผ๊ตฌ / python
[ํ๋ก๊ทธ๋๋จธ์ค] โพ ์ซ์ ์ผ๊ตฌ / python
2019.02.15 -
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ต๏ธโโ๏ธ ์์ ์ฐพ๊ธฐ / python
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ต๏ธโโ๏ธ ์์ ์ฐพ๊ธฐ / python
2019.02.15