광규니
광규니네
광규니
전체 방문자
오늘
어제
  • 분류 전체보기 (154)
    • 알고리즘 (100)
      • 알고리즘 개념 (2)
      • 문제 풀이 (96)
    • 주절주절 (19)
      • 자격증, 활동 후기 (4)
      • 전시회 후기 (3)
      • 이모저모 (2)
      • 회고 (3)
      • 뜨럼 (7)
    • 운영체제 (9)
    • 개발 지식 (9)
      • Apple Watch (4)
      • MySQL (2)
      • Eclipse (1)
      • XCode (1)
    • 네트워크 공부 (1)
    • 데이터베이스 공부 (5)
    • Java 공부 (7)
    • TMP (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • DP
  • BOJ
  • OS
  • 구현
  • 컴퓨터 사이언스
  • 드린이
  • 파이썬
  • 합주
  • 오블완
  • 운영체제
  • BFS
  • 알고리즘
  • 자바
  • 애플워치 앱 만들기
  • 티스토리챌린지
  • 백준
  • 다이나믹 프로그래밍
  • 개념
  • 애플워치 앱
  • 프로그래머스

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
광규니

광규니네

알고리즘/문제 풀이

[Python/파이썬 4963 백준] 섬의 개수

2021. 4. 9. 01:24
반응형

풀이

 

일반적인 bfs 문제인데

대각선만 추가됐습니다.

 

bfs 돌때마다 cnt+=1 씩해줬습니다.

 

import sys
from collections import deque
input=sys.stdin.readline
queue=deque()

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

def bfs(x,y):
    check[x][y]=True
    queue.append((x,y))
    while queue:
        x,y=queue.popleft()
        for i in range(8):
            nx=x+dx[i]
            ny=y+dy[i]
            if 0<=nx<h and 0<=ny<w:
                if graph[nx][ny]==1 and not check[nx][ny]:
                    check[nx][ny]=True
                    queue.append((nx,ny))
    
    
while 1:
    w,h=map(int,input().split())
    if w==0 and h==0:
        sys.exit()
    graph=[list(map(int,input().split())) for _ in range(h)]
    check=[[False]*w for _ in range(h)]
    cnt=0

    for i in range(h):
        for j in range(w):
            if graph[i][j]==1 and check[i][j]==False:
                bfs(i,j)
                cnt+=1
            else:
                continue
    print(cnt)
반응형
저작자표시

'알고리즘 > 문제 풀이' 카테고리의 다른 글

[Python/파이썬 13549 백준] 숨바꼭질 3  (0) 2021.04.10
[Python/파이썬 3055 백준] 탈출  (0) 2021.04.09
[Python/파이썬 11724 백준] 연결 요소의 개수  (0) 2021.04.09
[Python/파이썬 15665 백준] N과 M(11)  (0) 2021.04.07
[Python/파이썬 15652 백준] N과 M(4)  (0) 2021.04.06
    '알고리즘/문제 풀이' 카테고리의 다른 글
    • [Python/파이썬 13549 백준] 숨바꼭질 3
    • [Python/파이썬 3055 백준] 탈출
    • [Python/파이썬 11724 백준] 연결 요소의 개수
    • [Python/파이썬 15665 백준] N과 M(11)
    광규니
    광규니
    공부 및 일상 올리기~

    티스토리툴바