BFS 5

[백준][자바] 10026 - 적록색약 - BFS(완전탐색)

📌 문제백준 | 적록색약 | GOLD 5 | 완전탐색https://www.acmicpc.net/problem/10026   📌 문제 탐색하기N*N크기의 그리드R, G, B 가 그리드에 존재구역이 나뉘어 있고, 같은 색으로 있음같은 색상이 상하좌우로 인접 ⇒ 두 글자는 같은 구역에 속함적록색약 = 빨간색과 초록색의 차이를 거의 느끼지 못함 (빨강과 초록을 하나로 보는 것)example)RRRBBGGBBBBBBRRBBRRRRRRRR적록색약 x = 4구역적록색약 o = 3구역 출력 : 적록색약 아닌 사람이 본 구역의 수, 적록색약인 사람이 본 구역의 수   📌 알고리즘적록색약 및 적록색약 x 사람이 보는 색의 구역을 모두 확인해야하므로, ‘BFS’ 완전탐색을 사용한다.N이 100이하이므로, 2차배열을 사..

알고리즘/백준 2024.12.05

[백준][자바] 27737 - 버섯농장 - BFS(완전탐색)

📌 문제백준 | 버섯농장 | SILVER 1 | 완전탐색https://www.acmicpc.net/problem/27737  📌 문제 탐색하기N * N 칸으로 이루어진 나무판버섯이 자랄 수 있는 칸버섯이 자랄 수 없는 칸M개의 버섯포자 (자랄 수 있는 칸에 배치)포자가 심어진 칸을 포함해 최대 K개의 연결된 칸에 버섯이 자람상하좌우로 적어도 한 변을 공유하는 칸들한 칸에 여러개 겹쳐서 심을 수 있음ex) x개의 버섯 포자 겹쳐서 = x * K개의 연결된 칸에 버섯 입력 : N(크기), M(버섯 포자 개수), K(연결)0 : 버섯 자랄 수 O1 : 버섯 자랄수 X출력 : 농사가 가능할 경우, 남은 버섯 포자의 개수농사 가능 = 버섯이 자랄 수 있는 모든 칸에 버섯이 전부 자랐을 때 농사가 가능   📌..

알고리즘/백준 2024.12.04

[백준][자바] 1326 - 폴짝폴짝 - BFS(완전탐색)

📌 문제백준 | 폴짝폴짝 | SILVER 2 | 완전탐https://www.acmicpc.net/problem/1326  📌 문제 탐색하기징검다리에 숫자 존재징검다리에 쓰여 있는 수의 배수만큼 떨어져 있는 곳으로 감a번째 징검다리에서 b번째 징검다리로 이동출력 : 최소 몇 번 점프를 하여 b번까지 가는지   📌 알고리즘‘최소’ 의 점프를 구해야하므로, 완전탐색(DFS/BFS)를 사용할 예정DP와 같은 경우에는 ‘누적’된 정보들을 바탕으로 풀어야하는데, 이전 상태값에 의존하는 것은 아니므로 DP로 하지 않아도 될 것이라 생각했다.징검다리의 개수 N이 10,000까지 존재하므로 O(N^2) = 100,000,000  📌 코드 설계하기N, A, B 입력받기BFS를 통해앞으로 가는 경우뒤로 가는 경우→ ..

알고리즘/백준 2024.12.02

[BOJ] 99클럽 코테 스터디 12일차 TIL : 7569-토마토-BFS

문제백준 토마토  | 골드 5#그래프 이론 #그래프 탐색 #너비 우선 탐색https://www.acmicpc.net/problem/7569 📌 문제 탐색하기보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 것 → 익어짐1 : 익은 토마토0 : 익지 않은 토마토-1 : 토마토가 들어있지 않음상하좌우, 앞, 뒤 여섯 방향에 영향을 줄 수 있다.며칠이 지나면 다 익게 되는지 최소 일수를 확인한다.단, 저장될 때부터 모든 토마토가 익어 있으면 0 출력토마토를 모두 익히지 못하는 상황일 경우 -1 출력 📌 알고리즘 선택최소한의 일수로 모든 토마토가 익어야하므로 DFS/BFS로 완전탐색을 진행할 수 있다.현재 상자의 크기, 상자의 수가 최대 100, 100, 100이므로 최대 10 ^ 6이 ..

알고리즘/TIL 2024.11.08

[BOJ] 99클럽 코테 스터디 9일차 TIL : 7562-나이트의 이동-BFS

문제백준 나이트의 이동  | 실버 1#그래프 이론 #그래프 탐색 #너비 우선 탐색https://www.acmicpc.net/problem/7562 문제 탐색* 나이트가 한 번에 이동할 수 있는 칸에 따라 이동해서 목표지점에 몇번만에 갈 수 있는지* 최소로 움직이는 경우를 고르는 것이므로 BFS로 풀 수 있음  코드 설계1. 문제의 입력 받기 (BufferedReader, StringTokenizer)2. x, y 변수를 담을 Point 클래스 구현3. bfs 로직 구현    canGo로직 구현 (움직였을 때, graph 내부에 존재하는지)4. 예제 출력을 StringBuilder로 받아서 메모리 줄이기  시도 회차 수정 과정1회차* 처음에 횟수 세는 부분을 빠트려서 graph 배열을 새롭게 만들었다. 2..

알고리즘/TIL 2024.11.05