목록BFS (5)
HS_development_log
1. 문제 4963번: 섬의 개수 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사 www.acmicpc.net 가장 기본적인 BFS 문제입니다. 다만 상하좌우 뿐만 아니라 대각선으로도 이동이 가능한 점과 가로 세로의 입력값이 일반적인 경우와 달리 반대로 되어있는 점만 유의하면 어렵지 않았습니다. 2. 알고리즘 BFS 방식으로 모든 칸을 검사한다. 상하좌우 뿐만 아니라 대각선으로도 이동이 가능하므로 주의한다. 한번의 BFS 탐색이 끝날때 마다 섬의 개수를 +1 해준다. 3. 코드 /** * 2020.08.04 * DevHyeon * BOJ4963 : 섬의 개수 */ i..
문제 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 문제 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까? 입력 입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 체스판의 한 변의 길이 l(4 ≤ l ≤ 300)이 주어진다. 체스판의 크기는 l × l이다. 체스판의 각 칸은 두 수의 쌍 {0, ... www.acmicpc.net BFS탐색 문제 한 번에 뻗어 나가는 범위가 8개다. 그 부분만 유의하면서 탐색하면 어렵지 않은 문제 알고리즘 시작할 때 현재..
문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마 www.acmicpc.net BFS탐색 문제이다. 문제에 "최소 날짜"를 출력하라고 하는데 "최소"를 구하기 위해서는 BFS로 탐색해야 한다 DFS로는 구할 수 ..
문제 https://www.acmicpc.net/problem/1939 1939번: 중량제한 첫째 줄에 N, M(1≤M≤100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1≤A, B≤N), C(1≤C≤1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 C인 다리가 존재한다는 의미이다. 서로 같은 두 도시 사이에 여러 개의 다리가 있을 수도 있으며, 모든 다리는 양방향이다. 마지막 줄에는 공장이 위치해 있는 섬의 번호를 나타내는 서로 다른 두 정수가 주어진다. 공장이 있는 www.acmicpc.net 푸는데 2시간 반 걸린 문제. 일단 이분 탐색이랑 BFS가 섞여있는 문제라 1차적으로 난해했는데 거기서 또 중복된 간선 때문에 시간 ..