๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๊ฐ“์ƒ ์ง์žฅ์ธ ๋‚จ๋ฐ”์˜ค
article thumbnail

https://softeer.ai/practice/info.do?idx=1&eid=409 

 

Softeer

์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ

softeer.ai

๋ฌธ์ œ ํ•ด๊ฒฐ

๋ฐฑ์ค€์—์„œ ๋งŽ์ด ํ’€์—ˆ๋˜ ๋ฌธ์ œ๋ผ ์ฝ”๋“œ๋Š” ๋นจ๋ฆฌ ์งฐ๋Š”๋ฐ board ์ž…๋ ฅ์„ str์œผ๋กœ ๋ฐ›์•„๋†“๊ณ  ๊ณ„์† ๋น„๊ต๋ฅผ 0์œผ๋กœ ํ•˜๋‹ˆ๊นŒ ๋‹ต์ด ์•ˆ๋‚˜์˜ค์ง€..

 

๊ฐ„๋‹จํ•œ bfs ๋ฌธ์ œ์—ฌ์„œ visited๋กœ ํ™•์ธํ•œ ์ž๋ฆฌ์ธ์ง€ ์ฒดํฌ๋งŒ ํ•ด์ฃผ๋ฉด์„œ 1์ผ ๋•Œ ์นด์šดํŠธํ•ด์ฃผ๊ณ  ๊ทธ ๊ฐ’๋งŒ ๋งˆ์ง€๋ง‰์— ๋„˜๊ฒจ์ฃผ๋ฉด ๋˜๋Š” ๋ฌธ์ œ !

์ฝ”๋“œ

import sys
input = sys.stdin.readline
from collections import deque

N = int(input())
board = []
for i in range(N):
    board.append(list(input().strip()))

visited = [[0]*N for _ in range(N)]
dx = [1, 0, -1, 0]
dy = [0, 1, 0, -1]
result = []

def solution(x , y):
    q = deque()
    q.append([x,y])
    visited[x][y] = True
    cnt = 1

    while q:
        x,y = q.popleft()

        for d in range(4):
            next_x = x + dx[d]
            next_y = y + dy[d]

            if  (0 <= next_x < N and 0 <= next_y < N) and (visited[next_x][next_y] == False) and board[next_x][next_y] == '1':
                q.append([next_x, next_y])
                visited[next_x][next_y] = True
                cnt += 1
        
    return cnt

for i in range(N):
    for j in range(N):
        if (board[i][j] == '1') and visited[i][j] == False:
            result.append(solution(i,j))

result.sort()
print(len(result))
for r in result:
    print(r)

'Coding' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Softeer] ๊ธˆ๊ณ ํ„ธ์ด  (0) 2023.05.29
[Softeer] ์ง€๋„ ์ž๋™ ๊ตฌ์ถ•  (0) 2023.05.24
[Softeer] 8๋‹จ ๋ณ€์†๊ธฐ  (0) 2023.05.22
[Softeer] ์ „๊ด‘ํŒ  (0) 2023.05.18
[Softeer] ํšŒ์˜์‹ค ์˜ˆ์•ฝ  (0) 2023.05.17
profile

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๊ฐ“์ƒ ์ง์žฅ์ธ ๋‚จ๋ฐ”์˜ค

@๋‚จ๋ฐ”์˜ค