BFS 6

[BOJ] 13549. 숨바꼭질 3

문제 원본 : https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import java.io.*; import java.util.ArrayDeque; import java.util.Arrays; import java.util.Queue; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = ..

알고리즘/BOJ 2022.03.15

[BOJ] 1600. 말이 되고픈 원숭이

문제 원본 : https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net import java.io.*; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = n..

알고리즘/BOJ 2022.02.27

[BOJ] 2206. 벽 부수고 이동하기

문제 원본 : https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net import java.io.*; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader b..

알고리즘/BOJ 2022.02.27

[BOJ] 16137. 견우와 직녀

문제 원본 : https://www.acmicpc.net/problem/16137 16137번: 견우와 직녀 견우와 직녀는 여러 섬과 절벽으로 이루어진 지역에서 살고 있다. 이 지역은 격자로 나타낼 수 있으며, 상하좌우로 인접한 칸으로 가는 데 1분이 걸린다. 7월 7일은 견우와 직녀가 오작교를 건너 www.acmicpc.net #include #include #include #include #include #include #include using namespace std; int dir[4][2] = { {-1,0},{0,1},{1,0},{0,-1} }; int main() { cin.tie(NULL); ios_base::sync_with_stdio(false); int N, M; cin >> N >..

알고리즘/BOJ 2022.02.10

[BOJ] 3197. 백조의 호수

문제 원본 : https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net #include #include #include using namespace std; int R, C; char lake[1500][1500]; bool checked[1500][1500]; queue q; pair swan; queue swanQ; bool swanChecked[1500][1500]; int dir[4][2] = { {-1,0},{0,1..

알고리즘/BOJ 2022.02.06