깊이 우선 탐색 13

백준(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) 9466번 텀 프로젝트 풀이

Java로 구현한 9466번 텀 프로젝트 풀이입니다. https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net import java.util.*; import java.io.*; public class Main { static int[] select; static boolean[] visited; static List success; static List cycle; public static void main(String[] args) throws Excep..

백준(Python) 9466번 텀 프로젝트 풀이

Python으로 구현한 9466번 텀 프로젝트 풀이입니다. https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net import sys sys.setrecursionlimit(10 ** 8) def dfs(num) : global success visited[num] = True cycle.append(num) target = select[num] if visited[target] == True : if target in cycle : success += c..

백준(Python) 17472번 다리 만들기 2 풀이

Python으로 구현한 17472번 다리 만들기 2 문제 풀이입니다. https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net from collections import deque n, m = map(int, input().split()) data = [list(map(int, input().split())) for _ in range(n)] visited = [[False]*m for _ in range(n)] move = [(0..

백준(JAVA) 2606번 바이러스 풀이

Java으로 구현한 2606번 바이러스 문제 풀이입니다. https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net import java.util.*; public class Main { static boolean[] flag; static Map map = new HashMap(); static int result = 0; public static void main(String[] args) throws Exception { Scanner sc = new S..

백준(Python) 2606번 바이러스 풀이

Python으로 구현한 2606번 바이러스 문제 풀이입니다. https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net from collections import defaultdict, deque def bfs(num) : global result flag[num] = True q = deque() q.append(num) while q : value = q.popleft() for v in dict[value] : if flag[v] == False : fl..

백준(JAVA) 2667번 단지번호붙이기 풀이

Java으로 구현한 2667번 단지번호붙이기 문제 풀이입니다. https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net ** case 1 - DFS 방식 import java.util.*; public class Main { static int n; static char[][] data; static int count; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; public sta..

백준(Python) 2667번 단지번호붙이기 풀이

Python으로 구현한 2667번 단지번호붙이기 문제 풀이입니다. https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net ** case 1 - DFS 방식 def dfs(x, y) : global count if not (0

백준(JAVA) 1260번 DFS와 BFS 풀이

Java으로 구현한 1260번 DFS와 BFS 문제 풀이입니다. https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int[][] graph; static boolean[] visited; static int n; public static void main(String[] args) throws ..