BFS 3

[백준] 14503번: 로봇 청소기 - JAVA

문제 풀이 처음 문제를 이해하는 데 어려워서 백준의 질문게시판을 보고 문제를 이해하게 되었다.1) 청소기의 위치에서 사방으로 청소할 칸이 있는 경우    1. 반시계 방향으로 회전    2-1. 청소기가 바라보고 있는 방향이 청소할 칸인 경우        I. 바라보고 있는 방향으로 이동        II. 1)로 이동    2-2 청소기가 바라보고 있는 방향이 청소할 칸이 아닌 경우        I. 1)로 이동2) 청소기의 위치에서 사방으로 청소할 칸이 없는 경우    1. 청소기가 바라보고 있는 방향의 반대 방향이 벽이 아닌 경우        I. 청소기가 바라보고 있는 방향의 반대로 이동        II. 1)로 이동    2. 청소기가 바라보고 있는 방향의 반대방향이 벽인 경우        I..

백준 2025.02.06

[백준] 2573번: 빙산 - JAVA

문제   풀이 한 개의 빙산이 두 개 이상의 빙산으로 쪼개지는 데 걸리는 시간을 구하는 문제이다.빙산의 개수를 구하는 Method, 빙산을 녹이는 Method로 나누어서 풀이했다. 행의 개수 N, 열의 개수 M을 입력받는다. N x M의 크기를 가지는 2차원 Integer 배열을 선언하고 입력값을 저장한다. 얼음이 다 녹을 때까지 반복하며 빙산 덩어리의 수를 확인한다. 빙산 덩어리가 1개 초과라면 반복된 날짜를 출력한다.빙산 덩어리가 1개라면 얼음을 녹인다.영역을 순회하며 얼음을 찾는다.인접된 영역이 물인 수만큼 얼음을 녹인다. 이 때, 먼저 확인한 얼음이 녹아 물이 된 경우에는 녹이지 않는다. 아래 그림에서 3인 얼음의 인접인 물이 3이기 때문에 물이되지만 4인 얼음은 인접 물 3개의 영향만 받는다. ..

백준 2025.02.05

[백준] 2468번: 안전 영역 - JAVA

문제   풀이 높이가 가장 큰 영역을 MAX로 두고 비의 양을 1부터 반복하여 비의양별 안전영역의 수를 구하는 방법으로 풀이했다.영역의 가로세로 크기(N)를 입력받는다.N의 크기만큼의 Integer 2차원 배열을 생성하고 배열에 값을 입력받는다. 이중 가장 큰 값을 maxNum로 입력한다. maxNum만큼 반복하며 각 비의양별 안전영역을 구한다.비의양보다 높은 영역인 경우 안전영역이며, 인접영역이 안전영역인지 탐색한다.새로운 안전영역을 발견할경우 count를 올린다.각 비의양별 안전영역 개수를 비교하여 가장 큰 값을 출력한다. 정답 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class..

백준 2025.02.05