Problem Solving/Baekjoon1265 [백준] 3085 사탕 게임 - Brute Force / Java • 문제 링크 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static int n; public static char[][] box; public static int max = 0; public static void main(String[] args) throws IO.. 2022. 5. 17. [백준] 7576 토마토 - Graph Theory / Java • 문제 링크 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net • 풀이 과정 기본적인 접근 방식은 BFS를 활용한 미로 탐색과 유사하다. Queue 와 4 방향 좌표 이동에 필요한 dx, dy 배열을 활용하며 이 문제의 경우 방문 여부를 체크할 배열은 필요가 없다. 탐색할 위치를 동시 다발적으로 Queue 에 삽입해 탐색하고 4 방향 이동 가능 여부를 체크하는 과정에서 0 이 아닌, 즉 아직 익지 않은 토마토의 좌표는 건너뛰며 탐색을 진행한다. 이때 이동할 때 마다 이전 인덱스의 값보다 1 증.. 2022. 5. 16. [백준] 2178 미로 탐색 - Graph Theory / Java • 문제 링크 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net • 풀이 과정 우선 미로의 경로를 나타낼 maze 배열과 배열의 크기로 지정될 n, m 변수, 그리고 각 좌표당 방문 여부를 체크할 visited 배열과 4방향 좌표 이동에 필요한 dx, dy 배열을 지정한다. 첫 시작 인덱스는 0, 0 이며 visited 배열에 해당 위치를 체크하고 bfs 함수에 인자로 전달해 탐색을 시작한다. 너비 우선 탐색 (BFS)을 활용하여 경로를 탐색할 것이므로 기본적으로 큐 (Queue) 를 활용한다. 현재 x, y 좌표값을 저장할 Loc 객체를 생.. 2022. 5. 15. [백준] 2026 바이러스 - Graph Theory / Java • 문제 링크 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue;.. 2022. 5. 14. [백준] 1260 DFS와 BFS - Graph Theory / Java • 문제 링크 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net • 풀이 과정 간선 정보 저장 시 인접 리스트는 시간복잡도 O(V^2), 인접 행렬은 시간 복잡도 O(V+E) 이므로 인접 리스트를 사용하여 풀이하였다. 간선 정보 저장시 양방향으로 저장하고 분기가 있을 경우 정점 번호가 낮은 정점부터 방문하므로 각각 정렬을 수행한다. 방문 정보를 저장할 check 배열은 DFS, BFS 순으로 메소드가 수행될 때마다 초기화 해준다. 우선 DFS 의 탐색 과정은 이번에 방문한 .. 2022. 5. 13. [백준] 12026 BOJ 거리 - Dynamic Programming / Java • 문제 링크 12026번: BOJ 거리 스타트가 링크를 만나는데 필요한 에너지 양의 최솟값을 출력한다. 만약, 스타트가 링크를 만날 수 없는 경우에는 -1을 출력한다. www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { Buffere.. 2022. 5. 12. 이전 1 ··· 206 207 208 209 210 211 다음