본문 바로가기

BFS11

[백준 Gold 4] 3055 탈출 - Java 문제링크 : https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 접근 과정 : 일반적인 BFS 방식으로 접근 물이 찰 공간으로 고슴도치가 이동할 수 없다. 시간++ -> 물 이동 -> 고슴도치 이동 순으로 반복해서 가장 빠른 시간을 탐색 만약 고슴도치가 더 이상 이동할 수 없다면, 비버의 집에 갈 수 없다!! 소스 코드 및 결과 : package BOJ; /* 탈출 */ import java.io.*; import java.util.*; public class.. 2021. 12. 18.
[백준 Gold 4] 1600 말이 되고픈 원숭이 - Java 문제링크 : https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 접근 과정 : BFS 방식으로 접근해야겠다고 생각 BFS를 진행하면서, 방문체크를 어떻게 해야할 지 고민 int[][] visit로 방문을 체크하되. 그 값을 방문 당시의 남아있는 점프횟수로 하였다. 즉, visit[i][j]의 값의 현재 k의 값보다 크다면, 이미 이전에 방문했던 적이 있다고 판단. 소스 코드 및 결과 : package BOJ; /* 말이 되고픈 원숭.. 2021. 12. 18.
[백준 Platinum 5] 3197 백조의 호수 - Java 문제링크 : https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net 접근 과정 : 접촉되어 있는 물(.)의 칸을 묶어서 영역으로 표현 백조 두마리의 영역이 같으면, Return!! 같이 않으면, 물과 접촉되어 있는 얼음을 녹임 초기 아이디어 방금 녹은 물을 나타내는 큐와 다음에 녹을 얼음을 나타내는 큐를 사용. 방금 녹은 물의 영역을 체크 -> 백조 두 마리의 영역을 판단 -> 다르면 얼음을 녹임 (인접한 얼음을 Ice 큐.. 2021. 12. 17.