Updated:

๐Ÿ–๏ธย solution

import sys
from collections import deque
from typing import List

"""
[์‹œ๊ฐ„]
1) 16:50 ~ 17:20
[์š”์•ฝ]
1) ํฐ ๋„ํ™”์ง€์— ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ ธ ์žˆ์„ ๋•Œ, ๊ทธ ๊ทธ๋ฆผ์˜ ๊ฐœ์ˆ˜์™€, ๊ทธ ๊ทธ๋ฆผ ์ค‘ ๋„“์ด๊ฐ€ ๊ฐ€์žฅ ๋„“์€ ๊ฒƒ์˜ ๋„“์ด๋ฅผ ์ถœ๋ ฅ
    - ์˜์—ญ ๊ตฌ๋ถ„ ๋ฐ ๋„“์ด๊ฐ€ ๊ฐ€์žฅ ํฐ ์˜์—ญ์˜ ๋„“์ด ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
    - ์ƒํ•˜์ขŒ์šฐ 1๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ด ๊ทธ๋ฆผ
[์ „๋žต]
1) BFS
    - ์‹œ๊ฐ„์€ ๋„‰๋„‰ํ•จ
    - ์กฐ๊ฑด๋ฌธ์—์„œ ๋‹ค์ค‘์กฐ๊ฑด ์“ธ ๋•Œ ์ˆœ์„œ ์œ ์˜ํ•ด์„œ ์ž‘์„ฑํ•˜๊ธฐ
"""
def bfs(y: int, x: int, visit: List[bool]) -> int:
    visit[y][x] = True
    queue = deque()
    queue.append([y, x])
    count = 1
    while queue:
        vy, vx = queue.popleft()
        for i in range(4):
            ny = dy[i] + vy
            nx = dx[i] + vx
            if -1 < ny < N and -1 < nx < M and paper[ny][nx] == 1 and not visit[ny][nx]:
                visit[ny][nx] = True
                queue.append([ny, nx])
                count += 1
    return count

N, M = map(int, sys.stdin.readline().split())
paper = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
visited = [[False]*M for _ in range(N)]

dy = [0, 0, -1, 1]
dx = [-1, 1, 0, 0]

result = []
for i in range(N):
    for j in range(M):
        if paper[i][j] == 1 and not visited[i][j]:
            result.append(bfs(i, j, visited))

print(len(result))
print(max(result) if len(result) != 0 else 0)

๐Ÿ’กย idea

  • 1) BFS๋กœ ํ’€์ด
    • ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด BFS๋กœ ์ ‘๊ทผํ•˜๋Š”๊ฒŒ ์ข€ ๋” ํŽธ๋ฆฌ
      • ํŠนํžˆ ์˜์—ญ ๋ถ„ํ• , ๋„“์ด ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋Š” BFS๊ฐ€ ์œ ๋ฆฌ
      • recursionlimit ๋„ ํ”ผํ•  ์ˆ˜ ์žˆ์Œ
    • ์กฐ๊ฑด๋ฌธ์—์„œ ๋‹ค์ค‘ ์กฐ๊ฑด ์‚ฌ์šฉํ•  ๋•Œ, ์ˆœ์„œ ์œ ์˜ํ•ด์„œ ์กฐ๊ฑด ๋‚˜์—ดํ•˜๊ธฐ
      • ์ˆœ์„œ ๋ง˜๋Œ€๋กœ ๋ง‰ํ•˜๋ฉด IndexError ๋ฐœ์ƒ
    • ๋„ํ™”์ง€์— ๊ทธ๋ฆผ์ด ์—†๋Š” ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

๐Ÿงชย experiement

Experiment Result Experiment Result

์ฒซ๋ฒˆ์งธ ํ’€์ด ์ œ์ถœ์€ ๋ฉ”์„œ๋“œ์— visited ๋ณ€์ˆ˜๋ฅผ ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ํ• ๋‹นํ•˜๊ณ  ์‚ฌ์šฉํ•œ ๊ฒฐ๊ณผ๊ณ , ๋‘๋ฒˆ์งธ ํ’€์ด ์ œ์ถœ์€ ์ „์—ญ ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌํ•˜๊ณ  ์–ป์€ ๊ฒฐ๊ณผ๋‹ค. ์ „์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋œ ์†Œ๋น„ํ•˜๋ฉฐ, ์—ฐ์‚ฐ ์—ญ์‹œ ๋” ๋น ๋ฅธ ๋ชจ์Šต์ด๋‹ค. ๋ฐ˜๋“œ์‹œ ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜๋“ค์€ ๋ชจ๋‘ ์Šคํƒ์— ํ• ๋‹นํ•ด ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜์ž.

Leave a comment