너비 우선 탐색 30

백준(JAVA) 2583번 영역 구하기 풀이

Java로 구현한 2583번 영역 구하기 풀이입니다. https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net import java.util.*; import java.io.*; public class Main { static int n, m; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static int[][] data; static boolean[][] v..

백준(Python) 2583번 영역 구하기 풀이

Python으로 구현한 2583번 영역 구하기 풀이입니다. https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net from collections import deque n, m, k = map(int, input().split()) data = [[0] * m for _ in range(n)] visited = [[False] * m for _ in range(n)] dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1..

백준(JAVA) 2636번 치즈 풀이

Java로 구현한 2636번 치즈 풀이입니다. https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net import java.util.*; import java.io.*; public class Main { static int n, m; static int[][] data; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static List cheese_cnt = new ArrayList(); publ..

백준(Python) 2636번 치즈 풀이

Python으로 구현한 2636번 치즈 풀이입니다. https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net from collections import deque def bfs() : visited = [[False] * m for _ in range(n)] q = deque() q.append([0, 0]) visited[0][0] = True count = 0 while q : x, y = q.popleft() for d in range(4) : nx = x + dx[..

백준(JAVA) 7569번 토마토 풀이

Java로 구현한 7569번 토마토 문제 풀이입니다. https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net import java.util.*; import java.io.*; public class Main { static int n, m, h; static int[][][] data; static int[] dx = {-1, 1, 0, 0, 0, 0}; static int[] dy = {0, 0, -1, 1, 0, 0}; s..

백준(Python) 7569번 토마토 풀이

Python으로 구현한 7569번 토마토 문제 풀이입니다. https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net from collections import deque m, n, h = map(int, input().split()) data = [] q = deque([]) result = 0 for k in range(h) : arr = [] for i in range(n) : arr.append(list(map(int, in..

백준(JAVA) 7576번 토마토 풀이

Java로 구현한 7576번 토마토 문제 풀이입니다. https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net import java.util.*; import java.io.*; public class Main { static int n, m; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static int[][] data; static Queue q = new L..

백준(Python) 7576번 토마토 풀이

Python으로 구현한 7576번 토마토 문제 풀이입니다. https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net from collections import deque m, n = map(int, input().split()) data = [] q = deque([]) for i in range(n) : data.append(list(map(int, input().split()))) for j in range(m) : if data[i..

백준(JAVA) 2206번 벽 부수고 이동하기 풀이

Java으로 구현한 2206번 벽 부수고 이동하기 문제 풀이입니다. https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net import java.util.*; import java.io.*; public class Main { static int n, m; static int[][] data; static int[][][] visited; static int[] dx = {-1, 1, 0, 0}; static int[] dy ..

백준(Python) 2206번 벽 부수고 이동하기 풀이

Python으로 구현한 2206번 벽 부수고 이동하기 문제 풀이입니다. https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net from collections import deque n, m = map(int, input().split()) data = [list(map(int, input())) for _ in range(n)] visited = [[[0] * 2 for _ in range(m)] for _ in range(n..