자고일어나니코딩왕
자일코의 CODING
자고일어나니코딩왕
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • [Linux]리눅스 (1)
    • [NETWORK]네트워크 (17)
    • [PS] 알고리즘문제풀이 (16)
    • [SQL] (13)
    • [ALGORITHM]알고리즘개념 (9)
    • [DATA_STRUCTURE]자료구조 (1)
    • [PYTHON]파이썬 (0)
    • [정보처리기사] (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리눅스
  • ssh
  • virtualbox
  • 리눅스 #파일시스템 #디렉토리
  • 원격접속
  • BIOS #MBR #LILO #Kernel #init

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
자고일어나니코딩왕

자일코의 CODING

[백준,PS,BFS][PYTHON] #2667 . 단지번호붙이기
[PS] 알고리즘문제풀이

[백준,PS,BFS][PYTHON] #2667 . 단지번호붙이기

2020. 6. 17. 16:49

from collections import deque

def bfs(n,maps):
    global count
    global apt
    count +=1
    apt =1
    dx = [0,0,-1,1]
    dy = [1,-1,0,0]
    
    while q:#q가 있는동안 계속도는데
        for _ in range(len(q)): #q안에 있는 수만큼 반복
            x,y = q.popleft()#큐에서 한개를 뺀다.
            maps[x][y]  = count
            visited[x][y] =1
         
            for i in range(4):
                nx = x+ dx[i]
                ny = y+ dy[i]
                
                if 0<=nx <n and 0<=ny<n:
                    if maps[nx][ny] ==1 and visited[nx][ny] ==0:
                        q.append([nx,ny])
                        visited[nx][ny] =1
                        maps[nx][ny]  = count
                        apt +=1
        
    count_apt.append(apt)

n = int(input())
q = deque()
count = 0
apt = 0
count_apt = []
maps = []

for _ in range(n): #maps구성
    row = list(map(int,list(input())))
    maps.append(row)
    
visited = [ [0]*n for _ in range(n)]#visited 리스트 선언

for x in range(n):
    for y in range(n):
        if maps[x][y] == 1 and visited[x][y] ==0:
            q.append([x,y])
            bfs(n,maps)

num = max(map(max,maps))
print(num)
count_apt.sort()
for i in range(len(count_apt)):
    print(count_apt[i])

'[PS] 알고리즘문제풀이' 카테고리의 다른 글

[카카오,PS,UNION-FIND][PYTHON] #호텔방배정  (0) 2020.08.04
[백준,PS,BFS][PYTHON] #2468 . 안전영역  (0) 2020.06.17
[백준,PS,BFS][PYTHON] #2644 . 촌수계산  (0) 2020.06.16
[백준,PS,BFS][PYTHON] #1012 . 유기농배추  (0) 2020.06.15
[백준,PS,BFS][PYTHON] #2178 . 미로탐색  (0) 2020.06.15
    '[PS] 알고리즘문제풀이' 카테고리의 다른 글
    • [카카오,PS,UNION-FIND][PYTHON] #호텔방배정
    • [백준,PS,BFS][PYTHON] #2468 . 안전영역
    • [백준,PS,BFS][PYTHON] #2644 . 촌수계산
    • [백준,PS,BFS][PYTHON] #1012 . 유기농배추
    자고일어나니코딩왕
    자고일어나니코딩왕
    열코!

    티스토리툴바