๋ฌธ์ ์ค๋ช
๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ ๋ฐ๋จน๊ธฐ ๊ฒ์์ ๋ (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 ์ดํ์ ์์ฐ์
์ ์ถ๋ ฅ ์
land | answer |
[[1,2,3,5],[5,6,7,8],[4,3,2,1]] | 16 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
๋ฌธ์ ์ ์์์ ๊ฐ์ต๋๋ค.
ํ์ด
- ๋์ ๊ณํ๋ฒ, ๋์ ๋๋ฆฌ ์์ ๋ฐฐ์ด ๋ฃ๊ธฐ, 2์ค for ๋ฌธ ๊ฐ์ ๊ฒ ๋ ์ค๋ฅธ๋ค.
- ๊ทธ๋ ์ด๊ฑฐ ์ ์ ๊ณ ๋์ ํท์์ ํด๋ดค์๋ ๊ฑฐ์ผ!
- ๋์ถฉ ์ฅ์ฅ ์ง์ ๋ณด๋๊น ์๋๋ค? "๋จ, ๊ฐ์ ์ด์ ์ฐ์ํด์ ๋ฐ์ ์ ์๋ ํน์ ๊ท์น์ด ์์ต๋๋ค" ใ ใ ใ
- ์ผ! ์ด๋ฐ๊ฑด ๋ฏธ๋ฆฌ ๋งํ๋ผ๊ณ ! ... ๋ฏธ๋ฆฌ ๋งํ๊ตฌ๋...;;;
def solution(land):
dp = {}
dp[0] = list(set(land[0]))
l_l = len(land)
print(dp[0])
for n in range(1, l_l):
_tmp = []
for _n2 in land[n]:
for _n1 in dp[n-1]:
_tmp.append(_n1 + _n2)
dp[n] = list(set(_tmp))
print(dp[n])
return 1
ํ
์คํธ 1
์
๋ ฅ๊ฐ ใ [[1, 2, 3, 5], [5, 6, 7, 8], [4, 3, 2, 1]]
๊ธฐ๋๊ฐ ใ 16
์คํ ๊ฒฐ๊ณผ ใ ์คํํ ๊ฒฐ๊ด๊ฐ 1์ด ๊ธฐ๋๊ฐ 16๊ณผ ๋ค๋ฆ
๋๋ค.
์ถ๋ ฅ ใ [1, 2, 3, 5]
[6, 7, 8, 9, 10, 11, 12, 13]
[7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
- ๊ทธ๋ผ dp[n]์ n์ด ๋จ๊ณ๊ฐ ์๋๋ผ "์ ์ธ๋ ์ด"๋ก ์ค์ ํ๋ฉด ๋๋ค.
- ๊ทธ๋ฌ๋ฉด [0, 1, 2, 3] 4๊ฐ์ ๋์ ๋๋ฆฌ์ ๊ฐ์ด ๊พธ์ญ ๊พธ์ญ ์์ด๊ฒ ์ง...
dp[0] | dp[1] | dp[2] | dp[3] |
1 | 2 | 3 | 5 |
7,8,9 | 7,9,10 | 8,9,10 | 10,11,12 |
(7,8,9)+(3,2,1) | (7,9,10)+(4,2,1) | (8,9,10)+(4,3,1) | (10,11,12)+(4,3,2) |
- ์ด๋ฌ๋ฉด ๋๋ฌด ๋ง์ด ์์ฌ์ ์๊ฐ ์ด๊ณผ ์๋๋?
- ๋ฌธ์ ๊ฐ ์ด๋ฐ๊ฑฐ ์๋ํ ๋ฐ...
- ์! ์ต๋๊ฐ์ด๋ค. ์ต๋๊ฐ๋ง ์ ์ฅํ๋ฉด ๋๋ค!!!
dp[0] | dp[1] | dp[2] | dp[3] |
1 | 2 | 3 | 5 |
9 | 10 | 10 | 12 |
9+3 | 10+4 | 10+4 | 12+4 |
- ์ด๊ฑฐ๋ค!
- ๊ทธ๋ฆฌ๊ณ ๋์ ๋๋ฆฌ๋ฅผ ์ธ ํ์๋ ์๊ณ , ๋ฐฐ์ด๋ ํ์์๋ค. ใ ก.ใ ก;
def solution(land):
for i in range(1, len(land)):
land[i][0] += max(land[i-1][1],land[i-1][2],land[i-1][3])
land[i][1] += max(land[i-1][0],land[i-1][2],land[i-1][3])
land[i][2] += max(land[i-1][0],land[i-1][1],land[i-1][3])
land[i][3] += max(land[i-1][0],land[i-1][1],land[i-1][2])
return max(land[len(land)-1])
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (1.53ms, 10.4MB)
ํ
์คํธ 2 ใ ํต๊ณผ (1.55ms, 10.6MB)
ํ
์คํธ 3 ใ ํต๊ณผ (1.49ms, 10.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (1.50ms, 10.4MB)
ํ
์คํธ 5 ใ ํต๊ณผ (2.96ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (1.49ms, 10.4MB)
ํ
์คํธ 7 ใ ํต๊ณผ (1.52ms, 10.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (2.93ms, 10.6MB)
ํ
์คํธ 9 ใ ํต๊ณผ (1.53ms, 10.3MB)
ํ
์คํธ 10 ใ ํต๊ณผ (2.96ms, 10.4MB)
ํ
์คํธ 11 ใ ํต๊ณผ (1.50ms, 10.5MB)
ํ
์คํธ 12 ใ ํต๊ณผ (2.62ms, 10.4MB)
ํ
์คํธ 13 ใ ํต๊ณผ (1.51ms, 10.4MB)
ํ
์คํธ 14 ใ ํต๊ณผ (2.41ms, 10.6MB)
ํ
์คํธ 15 ใ ํต๊ณผ (1.52ms, 10.4MB)
ํ
์คํธ 16 ใ ํต๊ณผ (1.51ms, 10.4MB)
ํ
์คํธ 17 ใ ํต๊ณผ (1.53ms, 10.2MB)
ํ
์คํธ 18 ใ ํต๊ณผ (1.53ms, 10.3MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (147.57ms, 32.5MB)
ํ
์คํธ 2 ใ ํต๊ณผ (163.01ms, 32.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (163.00ms, 32.3MB)
ํ
์คํธ 4 ใ ํต๊ณผ (159.60ms, 32.5MB)
- ๊ณ ์์ ํ์ด.
- ์ ์ฝ๋๋ฅผ ๋ ์งง๊ฒ ์ธ ์๊ฐ ์๊ธด ํ๊ตฌ๋. ๊ทผ๋ฐ ์๋๊ฐ ๋๋ฆฌ๋ค.
def solution(land):
for i in range(1, len(land)):
for j in range(len(land[0])):
land[i][j] = max(land[i -1][: j] + land[i - 1][j + 1:]) + land[i][j]
return max(land[-1])
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (2.07ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (2.40ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (3.89ms, 10.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (2.08ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (2.09ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (2.04ms, 10.5MB)
ํ
์คํธ 7 ใ ํต๊ณผ (2.07ms, 10.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (2.06ms, 10.5MB)
ํ
์คํธ 9 ใ ํต๊ณผ (2.17ms, 10.4MB)
ํ
์คํธ 10 ใ ํต๊ณผ (2.06ms, 10.5MB)
ํ
์คํธ 11 ใ ํต๊ณผ (2.18ms, 10.3MB)
ํ
์คํธ 12 ใ ํต๊ณผ (2.19ms, 10.4MB)
ํ
์คํธ 13 ใ ํต๊ณผ (2.33ms, 10.3MB)
ํ
์คํธ 14 ใ ํต๊ณผ (2.25ms, 10.4MB)
ํ
์คํธ 15 ใ ํต๊ณผ (2.11ms, 10.3MB)
ํ
์คํธ 16 ใ ํต๊ณผ (3.77ms, 10.4MB)
ํ
์คํธ 17 ใ ํต๊ณผ (3.98ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (4.03ms, 10.4MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (218.05ms, 32.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (218.14ms, 32.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (215.91ms, 32.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (215.56ms, 32.4MB)
- ๋ฆฌ์คํธ[:] ์ฐ์ฐ์ผ๋ก 2๊ฐ๋ก ์๋๋ค๊ฐ ๋ค์ ํฉ์น๋ ์ฝ์คํธ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค.
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (3.97ms, 10.4MB)
ํ
์คํธ 2 ใ ํต๊ณผ (2.03ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (2.11ms, 10.3MB)
ํ
์คํธ 4 ใ ํต๊ณผ (2.00ms, 10.6MB)
ํ
์คํธ 5 ใ ํต๊ณผ (3.99ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (3.97ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (2.81ms, 10.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (2.67ms, 10.5MB)
ํ
์คํธ 9 ใ ํต๊ณผ (3.52ms, 10.4MB)
ํ
์คํธ 10 ใ ํต๊ณผ (3.35ms, 10.4MB)
ํ
์คํธ 11 ใ ํต๊ณผ (3.20ms, 10.4MB)
ํ
์คํธ 12 ใ ํต๊ณผ (2.23ms, 10.3MB)
ํ
์คํธ 13 ใ ํต๊ณผ (3.50ms, 10.3MB)
ํ
์คํธ 14 ใ ํต๊ณผ (2.15ms, 10.2MB)
ํ
์คํธ 15 ใ ํต๊ณผ (2.06ms, 10.4MB)
ํ
์คํธ 16 ใ ํต๊ณผ (2.18ms, 10.2MB)
ํ
์คํธ 17 ใ ํต๊ณผ (3.66ms, 10.2MB)
ํ
์คํธ 18 ใ ํต๊ณผ (3.70ms, 10.2MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (195.48ms, 32.4MB)
ํ
์คํธ 2 ใ ํต๊ณผ (212.10ms, 32.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (210.48ms, 32.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (192.92ms, 32.3MB)
- ๊ฐ์ ์ ๊น ๋ฐ๊ฟจ๋ค๊ฐ ์๋๋๋ก ๋๋ฆฌ๋ฉด?
- ์ ๋ ๋๋ ค ใ ใ ใ
def solution(land):
for i in range(1, len(land)):
for j in range(4):
_tmp, land[i-1][j] = land[i-1][j], 0
land[i][j] += max(land[i-1])
land[i-1][j] = _tmp
return max(land[-1])
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (3.97ms, 10.6MB)
ํ
์คํธ 2 ใ ํต๊ณผ (2.04ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (4.02ms, 10.5MB)
ํ
์คํธ 4 ใ ํต๊ณผ (2.21ms, 10.5MB)
ํ
์คํธ 5 ใ ํต๊ณผ (3.79ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (2.03ms, 10.5MB)
ํ
์คํธ 7 ใ ํต๊ณผ (3.96ms, 10.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (3.98ms, 10.5MB)
ํ
์คํธ 9 ใ ํต๊ณผ (2.70ms, 10.4MB)
ํ
์คํธ 10 ใ ํต๊ณผ (2.05ms, 10.4MB)
ํ
์คํธ 11 ใ ํต๊ณผ (2.07ms, 10.4MB)
ํ
์คํธ 12 ใ ํต๊ณผ (2.10ms, 10.4MB)
ํ
์คํธ 13 ใ ํต๊ณผ (3.99ms, 10.1MB)
ํ
์คํธ 14 ใ ํต๊ณผ (2.22ms, 10.5MB)
ํ
์คํธ 15 ใ ํต๊ณผ (2.07ms, 10.3MB)
ํ
์คํธ 16 ใ ํต๊ณผ (2.32ms, 10.2MB)
ํ
์คํธ 17 ใ ํต๊ณผ (3.98ms, 10.2MB)
ํ
์คํธ 18 ใ ํต๊ณผ (2.03ms, 10.3MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (205.14ms, 32.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (221.57ms, 32.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (221.31ms, 32.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (218.34ms, 32.4MB)
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๋ฐฐ๋ฌ (0) | 2023.02.18 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ์ซ์ ๋ธ๋ก (1) | 2023.02.18 |
ํผ๋ณด๋์น ์์ด์ ์ผ๋ฐํญ (0) | 2023.02.17 |
ํ๋ก๊ทธ๋๋จธ์ค 3 x n ํ์ผ๋ง ์ญ๋๊ธ ์ด๋ ต๋ผใ ใ (0) | 2023.02.17 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ฏธ๋ก ํ์ถ (1) | 2023.02.16 |