본문 바로가기
728x90

깊이 우선 탐색4

[JAVA]백준 3184번: 양 https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net 1. 문제 설명 문제 미키의 뒷마당이 주어진다. 마당은 행과 열로 이루어진 직사각형 모양이며, #은 울타리, o는 양, v는 늑대를 의미한다. 수평, 수직으로만 이동해서 울타리를 지나지 않고 다른 칸으로 이동할 수 있다면, 두 칸은 같은 영역 안에 속해 있다고 한다. 마당에서 "탈출"할 수 있는 칸은 영역에 속하지 않는다. 영역 안의 양의 수가 늑대의 수보다 많으면 양이 이겨 늑대를 .. 2021. 9. 16.
[JAVA]백준 1743번: 음식물 피하기 https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 1. 문제 설명 문제 음식물들은 근처에 있는 것끼리 뭉치게 되어서 큰 음식물 쓰레기가 된다. 가장 큰 음식물의 크기를 구하자 조건 세로의 길이 N(1 2021. 9. 16.
[JAVA]백준 1103번: 게임 https://www.acmicpc.net/problem/1103 1103번: 게임 줄에 보드의 세로 크기 N과 가로 크기 M이 주어진다. 이 값은 모두 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 보드의 상태가 주어진다. 쓰여 있는 숫자는 1부터 9까지의 자연수 또는 www.acmicpc.net 1. 문제 설명 1부터 9까지의 숫자와, 구멍이 있는 직사각형 보드에서 게임을 한다. 가장 왼쪽 위에서 부터 시작하여 동전이 있는 곳에 쓰여 있는 숫자 X 만큼 위, 아래, 왼쪽, 오른쪽으로 이동한다. 이때 중간에 있는 구멍은 무시하며, 동전이 구멍에 빠지거나, 보드의 바깥으로 나간다면 게임은 종료된다. 최대 몇 번 동전을 움직일 수 있는지 구하는 문제이다. 2. 풀이 bfs + dp / dfs+.. 2021. 7. 19.
[JAVA]백준 1937번: 욕심쟁이 판다 www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n*n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에서 www.acmicpc.net 1. 문제 설명 n*n 크기의 대나무 숲이 있을 때 판다가 어떤 지역에서 대나무를 먹는다. 그리고 그다음 지역은 현재 지역보다 대나무가 많이 있는 지역이어야 한다. 그렇지 않으면 판다는 죽는다고 할 때 판다의 최대한 오래 살 수 있는 일수를 구하는 문제이다. 2. 풀이 시작 위치가 정해져 있지 않기에 dfs로 곧장 푸는 것보다는 dfs+dp로 푸는 것이 효율적이다. 현재 위치에서 상, 하, 좌, 우 중.. 2021. 1. 28.
728x90