2025/08/04 2

(매일 BOJ) C++ 1012번 유기농 배추

이번 문제는 1012번 유기농 배추 문제이다이분탐색 다음으로 도장깨기 중인 DFS BFS 유형 2번째 문제이다.문제 개요어떤 배추밭이 있다. 서로 인접한 배추들은 해충 방제를 위해 하나의 군락으로 취급된다.이 군락들을 하나씩 지켜줄 벌레가 최소 몇 마리 필요한지 구하는 문제다.배추는 2차원 좌표상에 심겨 있음상하좌우로 인접한 배추들은 하나의 군락떨어져 있는 배추 군락의 수를 구하면 곧 정답접근법 핵심 포인트이 문제는 2차원 배열에서 연결된 덩어리의 개수를 세는 문제다.DFS 또는 BFS로 풀 수 있으며, 여기서는 재귀 DFS를 사용한다.DFS로 접근하는 방법배추가 심어진 위치(arr[x][y] = true)를 입력으로 받는다.2차원 배열을 전부 순회하면서:배추가 있고 && 아직 방문하지 않았다면, DFS..

매일 BOJ 2025.08.04

(매일 BOJ) C++ 1260번 DFS와 BFS

이번 문제는 1260번 DFS와 BFS 문제이다접근법 1. 그래프 표현인접 리스트 방식 사용 (vector v[1001])정점 번호가 1부터 시작하므로 1001 크기로 선언양방향 간선이므로 v[a].push_back(b)와 v[b].push_back(a) 모두 수행2. 방문 순서 정렬문제 조건에 따라 정점 번호가 작은 것부터 방문해야 하므로, 각 정점의 연결 리스트를 오름차순 정렬합니다 3. DFS 구현재귀 방식 사용방문 체크는 visit_dfs 배열로 관리방문한 정점은 result_dfs 벡터에 저장4. BFS 구현큐(queue) 사용방문 체크는 visit_bfs 배열로 관리방문한 정점은 result_bfs 벡터에 저장핵심 포인트그래프 탐색 문제에서는 방문 순서 조건을 항상 유의해야 합니다. 이 문제에..

매일 BOJ 2025.08.04