반응형
문제
https://www.acmicpc.net/problem/2667
풀이
DFS 혹은 BFS를 사용하여 풀 수 있는 문제입니다.
좌표의 방문 여부 확인하기 위해 2차원 Bool 배열을 선언하였습니다.
상하좌우로 이동이 가능하기 때문에 dy 값과 dx 값을 4방향 (동남서북) 으로 선언해주었습니다.
또한 지도의 범위를 넘어가는 경우를 막기 위해 함수를 작성해주었습니다.
그 이후 DFS 혹은 BFS를 사용해줍시다.
현재 좌표에서 상하좌우 중 이동이 가능하고, 아직 방문하지 않았으며, 지도의 좌표가 1이라면
이동하고, 방문처리를 하고, 현재 몇번째로 방문했는지 기록해줍시다.
이제 지도의 좌표가 1일 때, DFS 혹은 BFS를 수행하고, 수행한 후 몇 번 방문되었는지 배열에 담아줍시다.
배열의 크기가 단지의 개수일 것이고, 배열을 오름차순으로 정렬한 뒤 출력해주면 됩니다.
소스코드
후기
DFS/BFS를 사용하여 풀 수 있는 문제였습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 2178 미로 탐색 (Swift) (0) | 2023.04.26 |
---|---|
[BOJ] 백준 1012 유기농 배추 (Swift) (0) | 2023.04.26 |
[BOJ] 백준 1260 DFS와 BFS (Swift) (0) | 2023.04.26 |
[BOJ] 백준 2606 바이러스 (Swift) (0) | 2023.04.26 |
[BOJ] 백준 24445 알고리즘 수업 - 너비 우선 탐색 2 (Swift) (0) | 2023.04.26 |