๊ทธ๋ฆผ
๐ ๋ฌธ์
๋ฌธ์
์ด๋ค ํฐ ๋ํ์ง์ ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ ธ ์์ ๋, ๊ทธ ๊ทธ๋ฆผ์ ๊ฐ์์, ๊ทธ ๊ทธ๋ฆผ ์ค ๋์ด๊ฐ ๊ฐ์ฅ ๋์ ๊ฒ์ ๋์ด๋ฅผ ์ถ๋ ฅํ์ฌ๋ผ. ๋จ, ๊ทธ๋ฆผ์ด๋ผ๋ ๊ฒ์ 1๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ ํ ๊ทธ๋ฆผ์ด๋ผ๊ณ ์ ์ํ์.
๊ฐ๋ก๋ ์ธ๋ก๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ด๊ณ ๋๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ ๋จ์ด์ง ๊ทธ๋ฆผ์ด๋ค.
๊ทธ๋ฆผ์ ๋์ด๋ ๊ทธ๋ฆผ์ ํฌํจ๋ 1์ ๊ฐ์์ด๋ค.์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ํ์ง์ ์ธ๋ก ํฌ๊ธฐ n(1 ≤ n ≤ 500)๊ณผ ๊ฐ๋ก ํฌ๊ธฐ m(1 ≤ m ≤ 500)์ด ์ฐจ๋ก๋ก ์ฃผ์ด์ง๋ค.
๋ ๋ฒ์งธ ์ค๋ถํฐ n+1 ์ค ๊น์ง ๊ทธ๋ฆผ์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค.
(๋จ ๊ทธ๋ฆผ์ ์ ๋ณด๋ 0๊ณผ 1์ด ๊ณต๋ฐฑ์ ๋๊ณ ์ฃผ์ด์ง๋ฉฐ, 0์ ์์น ์ด ์๋ ๋ถ๋ถ, 1์ ์์น ์ด ๋ ๋ถ๋ถ์ ์๋ฏธํ๋ค)์ถ๋ ฅ
์ฒซ์งธ ์ค์๋ ๊ทธ๋ฆผ์ ๊ฐ์, ๋์งธ ์ค์๋ ๊ทธ ์ค ๊ฐ์ฅ ๋์ ๊ทธ๋ฆผ์ ๋์ด๋ฅผ ์ถ๋ ฅํ์ฌ๋ผ.
๋จ, ๊ทธ๋ฆผ์ด ํ๋๋ ์๋ ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ๋์ ๊ทธ๋ฆผ์ ๋์ด๋ 0์ด๋ค.
๐ง ํ์ด
ํ์ด
# [ํ์ด์ฌ] ๋ฐฑ์ค 1926๋ฒ ๋ฌธ์ : ๊ทธ๋ฆผ
from collections import deque # deque ๋ถ๋ฌ์ค๊ธฐ
n, m = map(int, input().split()) # n, m ์
๋ ฅ ๋ฐ ํ ๋น
draw = [list(map(int, input().split())) for _ in range(n)] # draw 2์ฐจ์ ๋ฐฐ์ด ์
๋ ฅ ๋ฐ ํ ๋น
dx = [1, -1, 0, 0] # ์ข, ์ฐ ์ด๋
dy = [0, 0, 1, -1] # ์, ํ ์ด๋
check = [[0] * m for _ in range(n)] # ๋ฐฉ๋ฌธ ์ฌ๋ถ ํ์ธํ ๋ฐฐ์ด ๋น ๋ฐฐ์ด ํ ๋น
a_list = [] # ๊ทธ๋ฆผ ๋์ด ๋ด์ ๋น a_list ํ ๋น
q = deque() # ๋น queue ํ ๋น
for i in range(n): # n๋งํผ ๋ฐ๋ณต
for j in range(m): # m๋งํผ ๋ฐ๋ณต
if draw[i][j] == 1 and check[i][j] != -1: # ๊ทธ๋ฆผ์ด๋ฉด์ (1), ๋ฐฉ๋ฌธํ์ง ์์ ๊ฒฝ์ฐ (-1)
check[i][j] = -1 # ๋ฐฉ๋ฌธํ ๊ฒ์ผ๋ก ํ์
q.append((j, i)) # q์ ํด๋น ์ขํ ๋ฃ๊ธฐ
cnt = 1 # ๊ทธ๋ฆผ ๋์ด ์ด๊ธฐ๊ฐ 1
while q: # q์ ์์๊ฐ ์์ผ๋ฉด ๊ณ์ ๋ฐ๋ณต
x, y = q.popleft() # q์์ ๊ฐ ๋นผ์ x, y์ ํ ๋น
for k in range(4): # ์, ํ, ์ข, ์ฐ๋งํผ ๋ฐ๋ณต
nx = dx[k] + x # nx์ ์ด๋ํ ๋งํผ์ ๊ฐ ์ถ๊ฐ
ny = dy[k] + y # ny์ ์ด๋ํ ๋งํผ์ ๊ฐ ์ถ๊ฐ
if 0 <= nx < m and 0 <= ny < n and check[ny][nx] != -1 and draw[ny][nx] != 0: # nx, ny๊ฐ ๋ฒ์ ๋ด์ ์์ผ๋ฉด์, ๋ฐฉ๋ฌธํ์ง ์์๊ณ , ๊ทธ๋ฆผ์ด ์๋์ง ์์ ๋
check[ny][nx] = -1 # ๋ฐฉ๋ฌธํ ๊ฒ์ผ๋ก ํ์
cnt += 1 # ๊ทธ๋ฆผ ๋์ด 1 ์ถ๊ฐ
q.append((nx, ny)) # q์ ํด๋น ์ขํ ์ถ๊ฐ
else: # ๋ฐ๋ณต๋ฌธ์ด ๋๋ ๊ฒฝ์ฐ, (์ฃผ๋ณ์ ๋ ์ด์ ๊ทธ๋ฆผ์ด ์ด์ด์ง์ง ์์ ๊ฒฝ์ฐ)
a_list.append(cnt) # ๊ทธ๋ฆผ ๋์ด cnt๋ฅผ a_list์ ์ถ๊ฐ
if len(a_list) != 0:
print(len(a_list)) # ๊ทธ๋ฆผ์ ๊ฐฏ์ ์ถ๋ ฅ
print(max(a_list)) # ๊ทธ๋ฆผ ์ค ์ต๋ ๋์ด ์ถ๋ ฅ
else:
print(0)
print(0)
'๐งฉ Algorithm > ๐จ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ด์ฌ] ๋ฐฑ์ค 1436๋ฒ ๋ฌธ์ : ์ํ๊ฐ๋ ์ (2) | 2022.08.27 |
---|---|
[ํ์ด์ฌ] ๋ฐฑ์ค 7576๋ฒ ๋ฌธ์ : ํ ๋งํ (0) | 2022.08.27 |
[ํ์ด์ฌ] ๋ฐฑ์ค 1874๋ฒ ๋ฌธ์ : ์คํ ์์ด (0) | 2022.08.27 |
[ํ์ด์ฌ] ๋ฐฑ์ค 3135๋ฒ ๋ฌธ์ : ๋ผ๋์ค (0) | 2022.08.26 |
[ํ์ด์ฌ] ๋ฐฑ์ค 2468๋ฒ ๋ฌธ์ : ์์ ์์ญ (0) | 2022.08.26 |