728x90

BFS 4

[Java]백준 BaekJoon.AC 16236 : 아기 상어 (Queue, bfs)

https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 고려해줘야 할 조건이 많은 까다로운 문제였지만 하나하나 풀어가는 재미가 있던 문제다! 난도는 그리 높지 않았지만 조건을 빠트려 하나씩 넣어주는 묘미(?)가 있었다. 이제 제법 Queue나 bfs에 익숙해진거 같다 다른 사람 코드 참고를 크게 안하고 풀어서 그런진 모르겠지만 코드 길이도 길고 선언한 것들도 많아 걱정했는데 별 탈 없이 성공을 안겨준 코드다ㅋㅋ 아래 가려둔 코드는 다른 답이 나..

[Java]BaekJoon.AC 2021.12.08

[Java]백준 BaekJoon.AC 14502 : 연구소 (너비우선탐색-bfs, 브루트포스 알고리즘)

https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int N, M; static int[][..

[Java]BaekJoon.AC 2021.11.29

[Java]백준 BaekJoon.AC 13549 : 숨바꼭질3 (너비우선탐색-bfs, Queue)

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2*X의 위치로 이동할 땐 0초가 소요된다는게 숨바꼭질2와 다른 점이다. 그리고 그 방법이 몇 가지인지 구하지 않아도 된다. 가장 작은 시간값이 무엇인지만 구하면 된다. 이미 푼 숨바꼭질2 코드를 보고 베끼려 하지 않았다. 그렇지만 아무래도 파생된 문제이기 때문에 기본적인 큰 틀은 같았다. 소요시간이 0초인 2*X를 어떻게 구현할지 고민을 많이 했다. 이 경우엔 ..

[Java]BaekJoon.AC 2021.11.24

[Java]백준 BaekJoon.AC 12851 : 숨바꼭질2 (너비우선탐색-bfs, Queue)

https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 이 문제도 N-Queue 문제처럼 시간을 단축시킬 수 있는 방법을 찾는게 관건인 것 같다. 아래와 같은 방식을 사용하지 않으면 시간초과가 일어나는지는 모르겠지만, 굳이 단축시키지 않을 이유는 없으니.. 우선, 수빈이가 동생보다 더 오른쪽에 있다면 가능한 방법은 (X-1)뿐이다. 왼쪽으로 한칸씩 총총 이동하는 방법밖에 존재하지 않으니, (N>=K) 일 때 걸리는..

[Java]BaekJoon.AC 2021.11.17
728x90