์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ADP
- ๋ ๋ฆฝํ๋ณธ
- t-test
- pandas
- ์ค๋ฒ์ํ๋ง
- ADsP
- Python
- ๊ตฐ์งํ
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- numpy
- ๋์ํ๋ณธ
- Lambda
- ๋น ๋ฐ์ดํฐ
- opencv
- ํ ์คํธ๋ถ์
- ํฌ๋กค๋ง
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- ๋ฐ์ดํฐ๋ถ์
- LDA
- PCA
- DBSCAN
- ํ์ด์ฌ
- ์ฃผ์ฑ๋ถ๋ถ์
- iloc
- datascience
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ์๋ํด๋ผ์ฐ๋
- ์ธ๋์ํ๋ง
- dataframe
Data Science LAB
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (๋ ๋ฐ๋จน๊ธฐ) ๋ณธ๋ฌธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (๋ ๋ฐ๋จน๊ธฐ)
ใ ใ ใ ใ 2023. 1. 23. 18:531. ๋ฌธ์ ์ค๋ช
๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ๋ (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 ํ๋ฉด ๋ฉ๋๋ค.
2. ์ ํ์ฌํญ
- ํ์ ๊ฐ์ N : 100,000 ์ดํ์ ์์ฐ์
- ์ด์ ๊ฐ์๋ 4๊ฐ์ด๊ณ , ๋ (land)์ 2์ฐจ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋๋ค.
- ์ ์ : 100 ์ดํ์ ์์ฐ์
3. ๋ค๋ฅธ ์ฌ๋ ํ์ด
def solution(land):
for i in range(1,len(land)):
for j in range(4):
land[i][j] += max([land[i-1][x] for x in range(4) if x!= j])
return max(land[-1])
๊ฐ ํ์์์ ํฉ์ ์ต๋๊ฐ์ ์ ์ฅํจ
def solution(land):
n = len(land)
# dp[i][j] = iํ j์ด์์ ์ ์์ ์ต๋๊ฐ
dp = [[0,0,0,0]] + land
for i in range(1, n+1):
dp[i][0] += max(dp[i-1][1], dp[i-1][2], dp[i-1][3])
dp[i][1] += max(dp[i-1][0], dp[i-1][2], dp[i-1][3])
dp[i][2] += max(dp[i-1][0], dp[i-1][1], dp[i-1][3])
dp[i][3] += max(dp[i-1][0], dp[i-1][1], dp[i-1][2])
return max(dp[n])