728x90
๋ฐ์ํ
"""
๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ง๋ขฐ๊ฐ ์๋ ์ง์ญ๊ณผ
์ง๋ขฐ์ ์ธ์ ํ ์, ์๋, ์ข, ์ฐ ๋๊ฐ์ ์นธ์ ๋ชจ๋ ์ํ์ง์ญ์ผ๋ก ๋ถ๋ฅํฉ๋๋ค.
์ง๋ขฐ๋ 2์ฐจ์ ๋ฐฐ์ด board์ 1๋ก ํ์๋์ด ์๊ณ board์๋
์ง๋ขฐ๊ฐ ๋งค์ค ๋ ์ง์ญ 1๊ณผ, ์ง๋ขฐ๊ฐ ์๋ ์ง์ญ 0๋ง ์กด์ฌํฉ๋๋ค.
์ง๋ขฐ๊ฐ ๋งค์ค๋ ์ง์ญ์ ์ง๋ board๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋,
์์ ํ ์ง์ญ์ ์นธ ์๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
"""
def solution(board):
board = [[0 for _ in range(len(board[0])+2)]] + [[0] + v + [0] for v in board] + [[0 for _ in range(len(board[0])+2)]]
result = 0
for y in range(1, len(board)-1):
for x in range(1, len(board[0])-1):
safe = True
if board[y][x] == 0:
for check_y in range(y-1,y+2):
if sum(board[check_y][x-1:x+2]) != 0:
safe = False
break
if safe:
result += 1
return result
"""
๋ด๊ฐ ์๊ฐํ ๋ฐฉ๋ฒ์ ์ง๋ขฐ ๋ฐฐ์ด์ ๊ฒ ํ
๋๋ฆฌ๋ฅผ 0์ผ๋ก ํ๋ฒ ์ฑ์ด๋ค.
00000
000 00000
010 -> 00100
000 00000
00000
๊ทธ๋ค์ ์๋ ์์์ง์ ๋ถํฐ for๋ฌธ์ ๋๊ณ ์ถ์์ผ๋ฉด 0๋ถํฐ ๋์์ง๋ง
๋ด๊ฐ ํ
๋๋ฆฌ๋ฅผ ์ฑ์ ๊ธฐ ๋๋ฌธ์ for๋ฌธ์์ 1๋ถํฐ ์์ํด์ผํ๋ค.
safe๋ผ๋ ๋ณ์๋ฅผ ๋๊ณ ์์ ํ ์ง์ญ์ ํ
๋๋ฆฌ์ ํญํ์ด ์๋ค๋ฉด
safe = false๋ผ๊ณ ํ์ฌ ์์ ํ์ง ์๋ค๊ณ ์ ์ธํ๊ณ ๊ทธ ์ง์ญ์ ๋ํด ๊ฒ์ฌ๋ฅผ ์ข
๋ฃํ๋ค.
for check_y in range(y-1,y+2):
if sum(board[check_y][x-1:x+2]) != 0:
์ด ๋ถ๋ถ์ ๋ด๊ฐ ๊ฒ์ฌํ ์ง์ญ์ y์ขํ์ -1๋ถํฐ +1๊น์ง๊ฐ ํ
๋๋ฆฌ์ด๊ณ
x์ขํ์ -1๋ถํฐ +1๊น์ง๊ฐ ํ
๋๋ฆฌ์ด๋ค. ํญํ์ 1์ด๋ฏ๋ก
๊ทธ ๊ฐ์ ๋ํ์๋ 0์ด ์๋๋ฉด ํญํ์ด ์๋ค๋ ์๋ฆฌ์ด๋ค.
ํ
๋๋ฆฌ๋ฅผ ์ ๋ถ ๊ฒ์ฌํ๋๋ฐ ์์ ํ๋ค๋ฉด result๋ฅผ 1 ๋ํด์ค๋ค.
"""
728x90
๋ฐ์ํ
'๐ผ๐ก๐๐ค๐ง๐๐ฉ๐๐ข > ๐๐ง๐ค๐๐ง๐๐ข๐ข๐๐ง๐จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค '์ ํ์์ ํ๋ณํ๊ธฐ' ํ์ด์ฌ ํ์ด + (0) | 2023.02.18 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค '๋ฑ์ ๋งค๊ธฐ๊ธฐ' ํ์ด์ฌ ํ์ด (0) | 2023.02.18 |
ํ๋ก๊ทธ๋๋จธ์ค '์์ธ์๋ถํด' ํ์ด์ฌ ํ์ด (0) | 2023.02.16 |
ํ๋ก๊ทธ๋๋จธ์ค 'ํน์ดํ ์ ๋ ฌ' ํ์ด์ฌ ํ์ด (0) | 2023.02.16 |
ํ๋ก๊ทธ๋๋จธ์ค '์ต๋น๊ฐ ๊ตฌํ๊ธฐ' ํ์ด์ฌ ํ์ด (0) | 2023.02.16 |
๋๊ธ