[백준] 16953 A → B | DFS, BFS, 그래프 | 실버 Ⅱ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/16953 ⭐ 풀이 과정문제 정의:BFS 탐색에서 큐를 이용해 현재 숫자와 연산 횟수를 저장합니다.큐에서 숫자를 꺼내 가능한 연산(2를 곱하거나, 1을 추가)을 수행한 결과를 큐에 삽입합니다.연산이 끝난 후 목표 값 B에 도달하면 최소 연산 횟수를 출력합니다.BFS를 종료했는데도 B에 도달하지 못한 경우 -1을 출력합니다.제약 조건:숫자가 B를 초과하면 더 이상 탐색할 필요가 없습니다. ✅ 정답 코드import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main { public static void main(String[] args..
[백준] 10026 적록색약 | DFS, BFS, 그래프 | 실버 Ⅱ | JAVA
·
코딩 테스트 일지 📒
정답 코드import java.util.*;public class Main { static int N; static char[][] grid; static boolean[][] visitedNormal, visitedColorBlind; static int[] dx = {0, 0, -1, 1}; static int[] dy = {-1, 1, 0, 0}; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); grid = new char[N][N]; visitedNormal = new boolean[N][N];..
[백준] 11725 트리의 부모 찾기 | DFS, BFS, 그래프 | 실버 Ⅱ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/11725 ⭐ 문제 해결을 위한 접근 방식이 문제는 루트 없는 트리에서 각 노드의 부모를 찾는 문제입니다. 트리의 구조를 BFS(너비 우선 탐색) 또는 DFS(깊이 우선 탐색)로 탐색하여 각 노드의 부모를 기록하면 됩니다.알고리즘 설계입력 파싱: 주어진 입력을 읽어 그래프를 인접 리스트로 표현합니다.탐색:루트 노드(1번 노드)를 기준으로 BFS를 수행합니다.탐색 중 각 노드의 부모를 기록합니다.출력: 2번 노드부터 N번 노드까지의 부모를 출력합니다.주요 고려 사항입력 크기가 최대 100,000으로 탐색 알고리즘은 O(N)O(N)O(N) 복잡도를 가지는 방식(BFS/DFS)을 사용해야 효율적으로 처리할 수 있습니다.양방향 그래프로 주어지기 ..
[백준] 11724 연결 요소의 개수 | DFS, BFS, 그래프 | 실버 Ⅱ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/11724 ⭐ 해결 방법그래프를 인접 리스트로 표현.DFS(깊이 우선 탐색) 또는 BFS(너비 우선 탐색)로 모든 정점을 방문.방문한 정점과 방문하지 않은 정점을 기준으로 연결 요소를 구분.그래프 탐색을 통해 모든 정점을 방문하고, 방문하지 않은 새로운 정점 발견 시 연결 요소 개수 증가.탐색 알고리즘으로 DFS를 선택. ✅ 정답 코드import java.util.*;public class ConnectedComponents { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 입력 받기 ..
[백준] 2667 단지번호붙이기 | DFS, BFS, 그래프 | 실버 Ⅰ | JAVA
·
코딩 테스트 일지 📒
⭐ 문제 분석지도는 N x N 크기의 정사각형 배열로 주어집니다. 각 셀은 0 또는 1로 이루어져 있습니다. 1은 집이 있는 곳을 나타내고, 0은 집이 없는 곳을 나타냅니다.연결된 집을 하나의 단지로 보고, 각 단지에 번호를 붙이면서 단지 내 집의 수를 세야 합니다.연결된 집은 좌우, 상하로 연결된 집을 의미하고, 대각선은 연결된 것으로 간주하지 않습니다.문제는 여러 개의 단지 수와 각 단지 내 집의 수를 오름차순으로 출력하는 것입니다.⭐ 해결 전략DFS (깊이 우선 탐색): DFS는 재귀적 방법으로 현재 노드에서 연결된 모든 노드를 탐색하는 방법입니다. 여기서는 집이 연결된 영역을 탐색하기 위해 DFS를 사용하여 연결된 집들을 하나의 단지로 묶고, 각 단지의 크기를 구할 수 있습니다.입력 처리 및 결과..
[백준] 2606 바이러스 | DFS, BFS, 그래프 | 실버 Ⅲ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/2606 ⭐ 문제 분석그래프 모델링각 컴퓨터를 노드로 보고, 두 컴퓨터 간의 연결을 엣지로 표현합니다.연결 관계를 기반으로 무방향 그래프를 구성합니다.문제 요구 사항1번 컴퓨터에서 시작하여 바이러스가 전파될 수 있는 모든 컴퓨터의 개수를 계산합니다.방문한 노드를 추적하면서 연결된 모든 컴퓨터를 탐색합니다.알고리즘그래프 탐색 알고리즘인 DFS(깊이 우선 탐색) 또는 **BFS(너비 우선 탐색)**를 사용합니다. ⭐ 해결 방법입력 처리첫 줄에서 컴퓨터의 개수를 입력받습니다.두 번째 줄에서 연결 정보의 개수를 입력받고, 이후 줄에서 연결된 노드 정보를 처리합니다.그래프 구현ArrayList를 이용하여 인접 리스트 형태로 그래프를 구성합니다.그래..
[백준] 1012 유기농 배추 | DFS, BFS, 그래프 | 실버 Ⅱ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/1012 ⭐ 해결 방법: 그래프 탐색그래프 탐색을 위한 대표적인 방법 두 가지를 활용할 수 있습니다.깊이 우선 탐색(DFS)스택 또는 재귀를 이용해 한 방향으로 탐색을 계속 진행하다가, 막히면 이전 노드로 돌아옵니다.너비 우선 탐색(BFS)큐를 이용해 현재 노드와 인접한 모든 노드를 탐색합니다.이번 문제는 DFS와 BFS 중 어떤 방법을 사용해도 해결이 가능합니다. ⭐ 알고리즘 풀이 과정배추밭 초기화입력받은 가로길이(M), 세로길이(N)에 따라 2차원 배열로 배추밭을 구성합니다.그래프 탐색을 위한 준비방문 여부를 확인하기 위한 배열(visited)과 이동 방향을 나타내는 배열(dx, dy)을 설정합니다.배추흰지렁이 군집 탐색배추가 심어진 ..
[백준] 11123 양 한마리... 양 두마리... | DFS, BFS, 그래프 | 실버 Ⅱ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/11123 ⭐ Flood Fill 알고리즘의 동작 원리시작 지점 선택채우기를 시작할 특정 좌표를 선택합니다.연결된 영역 탐색시작 지점에서 상하좌우(또는 대각선 포함)로 연결된 영역을 탐색합니다.연결 기준은 보통 값이 동일한 셀(#, 특정 색상 등)을 말합니다.탐색 방법깊이 우선 탐색(DFS): 재귀적으로 연결된 모든 위치를 탐색.너비 우선 탐색(BFS): 큐를 사용해 연결된 모든 위치를 탐색. ⭐ Flood Fill의 핵심 개념방문 표시이미 방문한 위치를 표시하여 중복 탐색을 방지합니다. 보통 별도의 배열(visited)이나 입력 데이터를 직접 수정합니다.재귀 또는 큐 활용DFS는 재귀를, BFS는 큐를 활용해 인접한 셀들을 탐색합니다. ..
[백준] 26169 세 번 이내에 사과를 먹자 | DFS, 백트래킹, 그래프 | 실버 Ⅲ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/26169 ⭐ 풀이 전략 문제 접근:학생이 3번 이내로 이동하며 2개 이상의 사과를 먹을 수 있는지 확인해야 하므로 백트래킹 또는 DFS(깊이 우선 탐색) 을 이용합니다.조건에 따라 가능한 경로를 탐색하며 사과를 먹을 수 있는지 판단합니다.탐색 과정:DFS를 통해 현재 위치에서 가능한 모든 방향으로 이동.이동할 때마다:사과를 먹으면 카운트를 증가.해당 칸을 장애물로 변경.재귀 호출 후 원래 상태로 복구(백트래킹).종료 조건:이동 횟수가 3을 초과하면 탐색 중단.사과를 2개 이상 먹으면 탐색 중단 후 결과 반환. ⭐ 알고리즘 풀이 과정입력 처리:5x5 보드와 학생의 초기 위치를 입력받습니다.DFS 함수 작성:매개변수: 현재 위치, 남은 이동..
[백준] 16173 점프왕 쩰리 (Small) | DFS, 브루트포스, 그래프 | 실버 Ⅳ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/16173 ⭐ 문제 소개젤리 캐릭터인 '쩰리'가 정사각형 게임판에서 목표 지점(맨 오른쪽 아래 칸)에 도달할 수 있는지 판별하는 문제입니다. 문제의 핵심은 주어진 이동 규칙을 따르면서 목표 지점에 도달할 수 있는 경로를 탐색하는 것입니다.⭐ 문제 풀이 과정1. 그래프 탐색 활용이 문제는 그래프 탐색을 통해 해결할 수 있습니다.DFS (깊이 우선 탐색): 재귀적으로 경로를 탐색하며 도달 가능한 모든 칸을 방문합니다.BFS (너비 우선 탐색): 큐를 활용해 단계별로 탐색하며 경로를 찾습니다.2. 유효한 이동 조건탐색을 진행할 때 다음 조건을 만족해야 합니다:다음 칸이 게임판 내에 있어야 합니다.이동할 수 있는 칸 수를 정확히 사용해야 합니다...
코양이🤍
'코딩 테스트 일지 📒' 카테고리의 글 목록