๐ ๋ฌธ์ ์ค๋ช
์ง๋ฏผ์ด๋ ๋ค์ํ ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ ๋ชจ์ ๋์๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ๊ณต์์ ์ํ์ ๋์์ต๋๋ค. ๊ณต์์๋ ์ด๋ฏธ ๋์๋ฆฌ๋ฅผ ๊น๊ณ ์ฌ๊ฐ๋ฅผ ์ฆ๊ธฐ๋ ์ฌ๋๋ค์ด ๋ง์ ์ง๋ฏผ์ด๊ฐ ๊น ์ ์๋ ๊ฐ์ฅ ํฐ ๋์๋ฆฌ๊ฐ ์ด๋ค ๊ฑด์ง ํ์ธํ๋ ค ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ง๋ฏผ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์๋ฆฌ์ ํ ๋ณ ๊ธธ์ด๊ฐ 5, 3, 2 ์ธ ์ข
๋ฅ์ด๊ณ , ์ฌ๋๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ์์ ์๋ค๋ฉด ์ง๋ฏผ์ด๊ฐ ๊น ์ ์๋ ๊ฐ์ฅ ํฐ ๋์๋ฆฌ๋ 3x3 ํฌ๊ธฐ์
๋๋ค.
์ง๋ฏผ์ด๊ฐ ๊ฐ์ง ๋์๋ฆฌ๋ค์ ํ ๋ณ์ ๊ธธ์ด๋ค์ด ๋ด๊ธด ์ ์ ๋ฆฌ์คํธ mats, ํ์ฌ ๊ณต์์ ์๋ฆฌ ๋ฐฐ์น๋๋ฅผ ์๋ฏธํ๋ 2์ฐจ์ ๋ฌธ์์ด ๋ฆฌ์คํธ park๊ฐ ์ฃผ์ด์ง ๋ ์ง๋ฏผ์ด๊ฐ ๊น ์ ์๋ ๊ฐ์ฅ ํฐ ๋์๋ฆฌ์ ํ ๋ณ ๊ธธ์ด๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์๋ฌด๋ฐ ๋์๋ฆฌ๋ ๊น ์ ์๋ ๊ฒฝ์ฐ -1์ returnํฉ๋๋ค.
๐ค ๋ฌธ์ ํ์ด
ํ ์ด๋ธ์ -1 ๊ฐ์ ๊ฐ์ง ์ ์์ ๋์๋ฆฌ ํฌ๊ธฐ๊ฐ ์ ์ฒด ํ ์ด๋ธ ๋ฒ์ ์์ ์๋์ง ํ์ธํ๋ค. ์ดํ ํด๋น ๋ฒ์์ 2์ฐจ์ ๋ฐฐ์ด์ ์ํํ์ฌ ๋ชจ๋ -1์ ๊ฐ์ธ์ง ํ์ธํ๋ค. ๋ชจ๋ -1์ผ ๊ฒฝ์ฐ ๋์๋ฆฌ ํฌ๊ธฐ์ ๊ฐ์ result ๋ฆฌ์คํธ์ ์ถ๊ฐํ๊ณ ๋ฆฌ์คํธ์์ ๊ฐ์ฅ ํฐ ๊ฐ์ return ํ๋ฉด ๋๋ค.
๐ ํ์ด ์ฝ๋
def check(row, col, size, park):
for i in range(row, row + size):
for j in range(col, col + size):
if not (park[i][j] == "-1"):
return False
return True
def solution(mats, park):
result = []
row = len(park)
col = len(park[0])
for i in range(row):
for j in range(col):
if park[i][j] == "-1":
for k in mats:
if i + k > row or j + k > col:
continue
if check(i, j, k, park):
result.append(k)
if not result:
answer = -1
else:
answer = max(result)
return answer