๋ฌธ์ ์ค๋ช
๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ๋ (land)์ ์ด Nํ 4์ด๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๋ชจ๋ ์นธ์๋ ์ ์๊ฐ ์ฐ์ฌ ์์ต๋๋ค. 1ํ๋ถํฐ ๋ ์ ๋ฐ์ผ๋ฉฐ ํ ํ์ฉ ๋ด๋ ค์ฌ ๋, ๊ฐ ํ์ 4์นธ ์ค ํ ์นธ๋ง ๋ฐ์ผ๋ฉด์ ๋ด๋ ค์์ผ ํฉ๋๋ค. ๋จ, ๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์๋ ํ ํ์ฉ ๋ด๋ ค์ฌ ๋, ๊ฐ์ ์ด์ ์ฐ์ํด์ ๋ฐ์ ์ ์๋ ํน์ ๊ท์น์ด ์์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด,
| 1 | 2 | 3 | 5 |
| 5 | 6 | 7 | 8 |
| 4 | 3 | 2 | 1 |
๋ก ๋ ์ด ์ฃผ์ด์ก๋ค๋ฉด, 1ํ์์ ๋ค๋ฒ์งธ ์นธ (5)๋ฅผ ๋ฐ์์ผ๋ฉด, 2ํ์ ๋ค๋ฒ์งธ ์นธ (8)์ ๋ฐ์ ์ ์์ต๋๋ค.
๋ง์ง๋ง ํ๊น์ง ๋ชจ๋ ๋ด๋ ค์์ ๋, ์ป์ ์ ์๋ ์ ์์ ์ต๋๊ฐ์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ ์์ ๊ฒฝ์ฐ, 1ํ์ ๋ค๋ฒ์งธ ์นธ (5), 2ํ์ ์ธ๋ฒ์งธ ์นธ (7), 3ํ์ ์ฒซ๋ฒ์งธ ์นธ (4) ๋ ์ ๋ฐ์ 16์ ์ด ์ต๊ณ ์ ์ด ๋๋ฏ๋ก 16์ return ํ๋ฉด ๋ฉ๋๋ค.
์ ํ์ฌํญ
- ํ์ ๊ฐ์ N : 100,000 ์ดํ์ ์์ฐ์
- ์ด์ ๊ฐ์๋ 4๊ฐ์ด๊ณ , ๋ (land)์ 2์ฐจ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋๋ค.
- ์ ์ : 100 ์ดํ์ ์์ฐ์
์ ์ถ๋ ฅ ์
![](https://blog.kakaocdn.net/dn/c0I2gF/btrLZy5x73F/ZTZXtwQrLDF2EN8CIsHjk0/img.png)
์ ์ถ๋ ฅ ์ #1
๋ฌธ์ ์ ์์์ ๊ฐ์ต๋๋ค.
ํ์ด ์ฝ๋
def solution(land):
if len(land) == 1:
return max(*land)
for i in range(1, len(land)):
for j in range(4):
now = land[i][j]
for k in range(4):
if k == j:
continue
land[i][j] = max(land[i][j], now + land[i-1][k])
return max(land[-1])
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ๋ค. ๋ฐฑ์ค์์๋ ์ค๋ฒ 1 ๋์ด๋๋ก ๋น์ทํ ๋ฌธ์ ๋ฅผ ๋ณธ ๊ฒฝํ์ด ์๋ค.
๋ ๋ฒ์งธ ํ๋ถํฐ (i == 1) ๊ฐ๋ฅํ ์ต๋ ๊ฐ์ผ๋ก ๊ฐฑ์ ํด์ค๋ค.
๊ธฐ์กด์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด์ now์ ์ ์ฅํ๋ค.
๊ทธ ํ ์์ 4์นธ ์ค์์, ๋ฐ๋ก ์ ์นธ์ ์ ์ธํ๊ณ (continue ๋ถ๋ถ)
๋๋จธ์ง ์นธ ์ค์์ ๊ฐ๋ฅํ ๊ฐ์ฅ ํฐ ๊ฐ์ผ๋ก ๊ฐฑ์ ํด์ค๋ค.
์ด๋ฅผ ๋ฐ๋ณตํ ํ์, ๊ฐ์ฅ ์๋ ํ์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฆฌํดํด์ฃผ๋ฉด ์ ๋ต์ด๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฐฉ๋ฌธ ๊ธธ์ด (level2, python) (0) | 2022.09.13 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํฌํธ๋ฆฌ (level2, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] n์ง์ ๊ฒ์ (level2, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฑ๊ตฃ๊ธธ (level3, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] [1์ฐจ] ํ๋ ์ฆ4๋ธ๋ก (level2, python) (1) | 2022.09.13 |