[백준_파이썬]4963번_섬의 개수
내 풀이1 - dfs - 여기서는 dy = dx[::-1] 작동X(그럴 수 밖에 ,, ㅎㅎ) import sys sys.setrecursionlimit(100000) # 재귀를 이용한 dfs로 풀었기 때문에 제한 설정 필요 # 대각선으로도 이동가능하므로 8가지 경우의 수 dx = [1, -1, 0, 0, 1, 1, -1, -1] dy = [0, 0, 1, -1, 1, -1, 1, -1 ] def dfs(x, y): # 방문처리 maps[x][y] = 2 for i in range(8): nx = x + dx[i] ny = y + dy[i] # 범위를 넘어가지 않으면서 if 0 = 0 and ny < w: if maps[nx][ny] == 1: maps[nx][ny] = 0 q.append((nx, ny)..
2021. 8. 25.
[백준_파이썬]4963_섬의 개수
www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 내 풀이 from collections import deque dx = [1, -1, 0, 0, 1, 1, -1, -1] dy = [0, 0, 1, -1, 1, -1, 1, -1] def bfs(x, y): q = deque() q.append((x, y)) # maps[x][y] = 0 while q: x, y = q.popleft() for i in range(8): # 방향(dx, dy) nx = x..
2021. 2. 26.