728x90
๋ฐ์ํ
๋ฌธ์ ์ค๋ช
1์ 0๋ก ์ฑ์์ง ํ(board)๊ฐ ์์ต๋๋ค. ํ 1์นธ์ 1 x 1 ์ ์ ์ฌ๊ฐํ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ํ์์ 1๋ก ์ด๋ฃจ์ด์ง ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ์ ์ฐพ์ ๋์ด๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. (๋จ, ์ ์ฌ๊ฐํ์ด๋ ์ถ์ ํํํ ์ ์ฌ๊ฐํ์ ๋งํฉ๋๋ค.)
์๋ฅผ ๋ค์ด
0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 |
0 | 0 | 1 | 0 |
๊ฐ ์๋ค๋ฉด ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ์
0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 |
0 | 0 | 1 | 0 |
๊ฐ ๋๋ฉฐ ๋์ด๋ 9๊ฐ ๋๋ฏ๋ก 9๋ฅผ ๋ฐํํด ์ฃผ๋ฉด ๋ฉ๋๋ค.
- ์ ํ์ฌํญ
- ํ(board)๋ 2์ฐจ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋๋ค.
- ํ(board)์ ํ(row)์ ํฌ๊ธฐ : 1,000 ์ดํ์ ์์ฐ์
- ํ(board)์ ์ด(column)์ ํฌ๊ธฐ : 1,000 ์ดํ์ ์์ฐ์
- ํ(board)์ ๊ฐ์ 1๋๋ 0์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
board | answer |
[[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] | 9 |
[[0,0,1,1],[1,1,1,1]] | 4 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
์์ ์์์ ๊ฐ์ต๋๋ค.
์
์ถ๋ ฅ ์ #2
| 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 |
๋ก ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ์ ๋์ด๋ 4๊ฐ ๋๋ฏ๋ก 4๋ฅผ returnํฉ๋๋ค.
๋ฌด์ง์ฑ ํ์ด
- ๊ทธ๋ฅ ๋๊ฒ ์ง ์ถ์ด์ ํ์๋๋ ๋๋ค?
- for๋ฌธ์ผ๋ก ๊ทธ๋ ค๊ฐ๋ฉด์ ํ ์คํธ์ผ์ด์ค ์์ํ๋๊ฑฐ ๋ค ๋ฃ๊ณ ์๋ฆฌ์กฐ๋ฆฌ ํด์ ํ์๋ค.
- ๋์ ๋ณด์ด๋ ๋ฌธ์ ๋ ์ฝ๊ตฌ๋... ใ ก.ใ ก;
- ํจ์จ์ฑ ํ
์คํธ๊น์ง ์์๋ค?
- 500ms๋ฉด ๊ฐ๊น์ค๋ก ๋ ๋ฏ...
- ํจ์จ์ฑ ํ ์คํธ ๋ ๋น ๋ฅด๊ฒ ํ๋ ค๋ฉด ์ญ์ ๋ค๋ฅธ ๋ฐฉ์์ ์จ์ผ๊ฒ ์ง?
def solution(board):
answer = board[0][0]
for y in range(1, len(board)):
for x in range(1, len(board[0])):
if board[y][x] != 0:
min_value = min(board[y][x-1], board[y-1][x], board[y-1][x-1])
board[y][x] = min_value + 1
answer = max(answer, min_value + 1)
return answer ** 2
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.00ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.06ms, 10MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.08ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.08ms, 10.2MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.07ms, 10.2MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.05ms, 10.3MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.05ms, 9.99MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.09ms, 10MB)
ํ
์คํธ 18 ใ ํต๊ณผ (1.08ms, 10.1MB)
ํ
์คํธ 19 ใ ํต๊ณผ (1.00ms, 10.1MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (499.56ms, 31.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (474.39ms, 30.7MB)
ํ
์คํธ 3 ใ ํต๊ณผ (512.72ms, 30.7MB)
๊ณ ์์ ํ์ด
- ์ฝ๊ฐ ๋ ๋น ๋ฅธ ๋ฐฉ์.
- ๋ณ์์ ํ ๋นํ๊ณ +1ํ๋ ์ฐ์ฐ๊น์ง ์ ๊ฑฐํด๋ฒ๋ฆฐ...
- +1์ ํ ํ์๊ฐ ์๊ตฌ๋, ์ด์ฐจํผ ๊ทธ ๋ฐฐ์ด ์์ 1์ด ๋ค์ด์์ผ๋๊น ๋ํด๋ฒ๋ฆฌ๋ฉด ๋๋๊ฑฐ๋ค...
- ๊ทธ๋ฆฌ๊ณ answer์ max...ํ๋๊ฑด ๋ง์ง๋ง์ผ๋ก ๋นผ์ ๊ทธ๊ฒ๋ง ๋๋ฆฌ๋ฉด ๋ ๋น ๋ฆ
def solution(board):
answer = 0
for i in range(1, len(board)) :
for j in range(1, len(board[0])) :
if board[i][j] >= 1 :
board[i][j] += min(board[i-1][j-1],board[i][j-1],board[i-1][j])
for i in board :
if answer < max(i) : answer = max(i)
return answer * answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.00ms, 10MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.03ms, 10MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.04ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.08ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.03ms, 10.1MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.04ms, 10MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.03ms, 10.1MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.06ms, 10MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.07ms, 10.2MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.07ms, 9.81MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.04ms, 10.1MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.88ms, 10.1MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.90ms, 10.1MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (410.92ms, 31.1MB)
ํ
์คํธ 2 ใ ํต๊ณผ (423.89ms, 30.5MB)
ํ
์คํธ 3 ใ ํต๊ณผ (425.65ms, 30.8MB)
- ๊ทธ๋ผ ํ์ค ์ฒดํฌ ๋๋ฌ์ ๋ max()๋ก ๋น๊ตํ๋ฉด ๋๋๊ฑฐ ์๋๋?
def solution(board):
answer = board[0][0]
for y in range(1, len(board)):
for x in range(1, len(board[0])):
if board[y][x] != 0:
board[y][x] += min(board[y][x-1], board[y-1][x], board[y-1][x-1])
answer = max(answer, max(board[y]))
return answer ** 2
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.00ms, 10.1MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.04ms, 10.4MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.01ms, 10MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.04ms, 10.2MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.04ms, 10.2MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.05ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (1.01ms, 10.3MB)
ํ
์คํธ 19 ใ ํต๊ณผ (1.03ms, 10MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (397.91ms, 31MB)
ํ
์คํธ 2 ใ ํต๊ณผ (412.73ms, 30.5MB)
ํ
์คํธ 3 ใ ํต๊ณผ (412.15ms, 30.9MB)
728x90
๋ฐ์ํ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์นด๋ ๋ญ์น (0) | 2023.02.16 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค 2 x n ํ์ผ๋ง (0) | 2023.02.16 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ ํ ํฉ ๊ฐ๊ฒ ๋ง๋ค๊ธฐ (0) | 2023.02.16 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฐ๋ฐ์์ด ์ ์ ๋ถ (0) | 2023.02.15 |
ํ๋ก๊ทธ๋๋จธ์ค ์ซ์ ์นด๋ ๋๋๊ธฐ (0) | 2023.02.15 |