[BaekJoon] 24479번 - 알고리즘 수업 - 깊이 우선 탐색 1 [Java][C++]
문제 링크 1. 아이디어 양방향 간선들이 주어진 그래프에 대해 깊이 우선 탐색을 하면 되는 문제로 인접 리스트를 활용하면 되며, 오름차순 방문을 위해 정렬을 한번 해주었다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main { stat...
문제 링크 1. 아이디어 양방향 간선들이 주어진 그래프에 대해 깊이 우선 탐색을 하면 되는 문제로 인접 리스트를 활용하면 되며, 오름차순 방문을 위해 정렬을 한번 해주었다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main { stat...
문제 링크 1. 문제 풀이 주어진 문자열에서 J, A, V를 뺀 나머지 문자들도 새로운 문자열을 만드는 방식으로 해결할 수 있다. 2. 코드 1. 풀이 [Java] import java.io.*; public class Main { public static void main(String[] args) throws IOE...
문제 링크 1. 아이디어 수빈이가 동생을 찾을 수 있는 최단 시간을 찾는 문제로 BFS를 활용하면 간단하게 해결할 수 있다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main { static final int MX = 100_000; ...
문제 링크 1. 문제 풀이 이모티콘 $S$ 개를 만드는 과정은 BFS를 활용하면 해결할 수 있다. 탐색은 현재 화면에 있는 이모티콘 수와 클립보드에 있는 이모티콘 수가 모두 필요하므로 두 가지 파라미터를 갖는 객체를 활용해 3가지 연산을 적용하며 BFS를 돌려줬다. 2. 코드 1. 풀이 [Java] import java.io.*...
문제 링크 1. 아이디어 BaekJoon 1697번 - 숨바꼭질 문제에서 최단 시간과 최단 경로까지 구해야 하는 문제로 최단 경로를 구하기 위해 이전에 어떤 위치에서 왔는지 저장하는 prv 배열을 활용했다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public cla...
문제 링크 1. 아이디어 BaekJoon 1697번 - 숨바꼭질 문제에서 최단 시간과 최단 시간에 찾는 경우의 수까지 구해야 하는 문제다. 수빈이가 각 좌표를 방문한 최단 시간을 저장하는 dist 배열을 활용해서 방문 체크겸 최단 시간 기록을 해줬고, 각 좌표를 방문한 횟수를 저장한 ways 배열을 활용해서 방문한 적이 없는 좌표면 이전 위...
문제 링크 1. 아이디어 양방향 간선들이 주어진 그래프에 대해 너비 우선 탐색을 하면 되는 문제로 인접 리스트를 활용하면 되며, 내림차순 방문을 위해 정렬을 한번 해주었다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main { stat...
문제 링크 1. 아이디어 $(1,\ 1)$ 에서 $(N,\ M)$ 까지 이동하는 최단 거리를 구하되 벽을 한번은 부술 수 있는 문제로 기본적으로 최단 거리 BFS를 활용하되 특정 좌표를 벽을 부순 적이 있는 상태로 방문했는지, 벽을 부순 적이 없는 채로 방문했는지 상태까지 검증하면 된다. 이를 위해 방문 체크 배열을 3차원으로 설정해서 좌표...
문제 링크 1. 아이디어 맵에 대해 벽인 경우 해당 벽을 부쉈을 때 방문할 수 있는 칸의 개수를 해당 위치에 기록해서 맵 전체에 대한 결과를 출력해야하는 문제다. 매번 벽을 부수고 BFS로 개수를 셀 경우 시간 초과가 발생하게 되는데 맵 전체를 순회하며 빈칸인 경우 인접한 모든 빈칸을 방문처리하고 가장자리 벽들을 임시로 큐에 담은 후 이를 ...
문제 링크 1. 아이디어 BaekJoon 14442번 - 벽 부수고 이동하기 2 문제에서 낮과 밤이 추가되어 벽은 낮에만 부술 수 있으며 이동하지 않고 머물 수도 있는 문제로 방문 체크에서 낮과 밤도 상태로 추가해주면 된다. 탐색중 벽을 만나면 낮일 경우 동일하게 풀고 밤일 경우 flag를 true로 설정해서 이동하지 않는 경우를 고려해줬다...