[백준] 1012-유기농 배추 (Java)
·
알고리즘
https://www.acmicpc.net/problem/1012 문제 구현 방식육지(1)로 표시된 지점들을 탐색하면서 연결된 육지를 올바르게 판단하는 것이 관건인 문제이다.방문하지 않은 칸을 방문할 때마다, 연결된 모든 칸을 한 번에 탐색하여 육지로 묶는 방식으로 문제를 접근하였다. BFS를 위한 자료구조2차원 배열 check로 방문 여부를 관리한다.큐(Queue)를 활용하여 BFS를 구현한다.이동 방향을 나타내기 위한 dy, dx 배열(상하좌우)을 준비한다.로직이중 for문을 통해 모든 좌표들을 하나씩 순회하면서 탐색한다.아직 방문하지 않은 칸을 발견하면, 해당 칸에서 시작하는 새 육지를 찾은 것이므로, 육지 개수를 담당하는 변수의 값을 1 증가시킨다.현재 좌표 (y, x)를 큐에 넣고, check[..
[백준] 2178-미로 탐색 (Java)
·
알고리즘
https://www.acmicpc.net/problem/2178 문제 구현 방식(0,0) → (m,n) 으로 이동하는데 얼마나 많은 블럭을 이동해야하는지 판단하는 것이 관건인 문제이다.  입력 처리숫자가 공백 없이 주어지므로, 문자열 입력 후 개행(\n)을 기준으로 분리한다.각 줄에서 불필요한 ‘0’을 제거한 뒤 정수 형태로 변환하여 미로를 표현하는 2차원 배열에 저장한다. BFS를 위한 자료구조큐(Queue)를 생성하여 BFS 로직을 구현한다.방문 여부와 이동 거리를 동시에 관리하기 위해 check라는 2차원 배열을 사용한다.check[y][x]에는 '(y, x)까지 이동하는 데 필요한 거리'를 저장한다.이전 위치의 check 값에 1을 더한 값을 현재 위치에 대입함으로써 거리를 갱신한다. 로직우선 ..