본문 바로가기

Algorithm 💡/BFS42

[백준 11123번] 양 한마리... 양 두마리... 11123번: 양 한마리... 양 두마리... 얼마전에 나는 불면증에 시달렸지... 천장이 뚫어져라 뜬 눈으로 밤을 지새우곤 했었지. 그러던 어느 날 내 친구 광민이에게 나의 불면증에 대해 말했더니 이렇게 말하더군. "양이라도 세봐!" www.acmicpc.net import sys from collections import deque input = sys.stdin.readline t = int(input().rstrip()) dx = [-1,1,0,0] dy = [0,0,-1,1] for _ in range(t): h,w = map(int,input().split()) answer = 0 area = [list(input().rstrip()) for _ in range(h)] visited = [[F.. 2024. 1. 6.
[백준 5427번] 불 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net # 상근이는 불이 옮겨진 칸과 불이 붙으려는 칸으로 이동 X # 상근이가 있는 칸에 불이 옮겨옴과 동시에 다른 칸으로 이동할 수 있다. # 빌딩의 지도가 주어졌을때, 얼마나 빨리 빌딩을 탈출할 수 있는가(최단 시간) # 빌딩을 탈출하는 최단 시간, 불가능하다면 IMPOSSIBLE 출력 from collections import deque t = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] for _ in range(t): w, h = ma.. 2023. 12. 29.
[SWEA - D4] 보급로 # 정답 코드(BFS + 최단경로) from collections import deque T = int(input()) for test_case in range(1, T + 1): n = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] area = [list(map(int,(list(input())))) for _ in range(n)] visited = [[False]*n for _ in range(n)] time = [[0]*n for _ in range(n)] def bfs(): visited[0][0] = True queue = deque([(0,0)]) while queue: x, y = queue.popleft() for i in range(4): nx = x .. 2023. 11. 19.
[프로그래머스 PCCP 모의고사 2-2번] 시추관 from collections import deque def solution(land): answer = 0 dx = [-1,1,0,0] dy = [0,0,-1,1] n = len(land) m = len(land[0]) visited = [[False]*m for _ in range(n)] total = [0]*m def bfs(x,y): if visited[x][y]: return visited[x][y] = True y_list = set() count = 0 queue = deque([(x,y)]) while queue: temp_x,temp_y = queue.popleft() count += 1 y_list.add(temp_y) for i in range(4): nx = temp_x + dx[i.. 2023. 11. 18.
[프로그래머스 PCCP 모의고사 4번] 보물 지도 from collections import deque def solution(n, m, hole): dx = [-1,1,0,0] dy = [0,0,-1,1] area = [[0]*n for _ in range(m)] visited = [[[-1]*n for _ in range(m)] for _ in range(2)] for hx, hy in hole: area[hy-1][hx-1] = -1 area[0][0],area[m-1][n-1] = 1, 2 def bfs(): visited[0][0][0] = 0 queue = deque([(0,0,0)]) while queue: w, x, y = queue.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] .. 2023. 11. 11.
[백준 2589번] 보물섬 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net import sys from collections import deque input = sys.stdin.readline dx = [-1,1,0,0] dy = [0,0,-1,1] # L : 육지, W : 바다 max_value = float("-inf") n, m = map(int,input().split()) area = [list(input().rstrip()) for _ in range(n)] def bfs(x,y): global max_value visite.. 2023. 10. 20.