๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Coding Test/Algorithms

[์†Œํ”„ํ‹ฐ์–ด] ์žฅ์• ๋ฌผ ์ธ์‹ ํ”„๋กœ๊ทธ๋žจ/Python - Lv.2

by The Future Engineer, Lucy 2024. 10. 29.
728x90
๋ฐ˜์‘ํ˜•

โ“๋ฌธ์ œ

Softeer - ํ˜„๋Œ€์ž๋™์ฐจ๊ทธ๋ฃน SW์ธ์žฌํ™•๋ณดํ”Œ๋žซํผ

 

Softeer - ํ˜„๋Œ€์ž๋™์ฐจ๊ทธ๋ฃน SW์ธ์žฌํ™•๋ณดํ”Œ๋žซํผ

 

softeer.ai

์–ธ์–ด๋ณ„ ์‹œ๊ฐ„/๋ฉ”๋ชจ๋ฆฌ

์–ธ์–ด ์‹œ๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ
JavaScript 2์ดˆ 128MB
C 1์ดˆ 128MB
C++ 1์ดˆ 128MB
Java 2์ดˆ 128MB
Python 2์ดˆ 128MB

โœ๐Ÿปํ’€์ด

์žฅ์• ๋ฌผ ์ค‘ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ณณ์„ ์ฐพ์•„ ๋ธ”๋ก์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
ํ˜„์žฌ ์œ„์น˜์—์„œ ๋” ์ด์ƒ์˜ ๋ธ”๋ก์ด ์—†๋‹ค๋ฉด ๋„“์ด๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.
์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์ธ์‹๋˜์ง€ ์•Š์€ ๋ธ”๋ก์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์žฅ์• ๋ฌผ ๋ธ”๋ก์˜ ์ˆ˜์™€ ๋ธ”๋ก์— ์†ํ•˜๋Š” ์žฅ์• ๋ฌผ์˜ ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ’ป์ฝ”๋“œ

import sys
from collections import deque

input = sys.stdin.readline

n = int(input())
board = [list(input().rstrip('\\n')) for _ in range(n)]
visit = [[False for _ in range(n)] for _ in range(n)]
dir = [[1, 0], [-1, 0], [0, 1], [0, -1]]
blocks = []

def bfs(y, x):
    q = deque()
    q.append((y, x))
    visit[y][x] = True
    block = 1
    while q:
        cury, curx = q.popleft()
        for d in dir:
            ny, nx = cury + d[0], curx + d[1]
            if 0 <= ny < n and 0 <= nx < n and not visit[ny][nx] and board[ny][nx] == '1':
                visit[ny][nx] = True
                q.append((ny, nx))
                block += 1

    blocks.append(block)

for i in range(n):
    for j in range(n):
        if not visit[i][j] and board[i][j] == '1':
            bfs(i, j)

blocks.sort()
print(len(blocks))
print(*blocks, sep='\\n')
728x90
๋ฐ˜์‘ํ˜•