BFS
백준 2468번 안전 영역 [ Java ]
2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 비가 안오는 경우의 반례를 주의해야 합니다 2 11 11 answer : 1 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] dx = new int[]{1, 0, -1 ..
백준 10026번 적록색약 [ Java ]
10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 각각 따로 BFS를 돌려주었습니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] dx = new int[]{1, 0, -1 ,0}; int[] dy = ..
백준 7562번 나이트의 이동 [ Java ]
7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net BFS 기본코드에 이동 좌표만 수정해주었습니다. import java.util.*; import java.io.*; public class Main { static StringBuilder sb = new StringBuilder(); static int[] dx = new int[]{1, 2, 2, 1, -1, -2, -2, -1}; static int[] dy = new int[]{2, 1, -1, -2, -2, -1, 1, 2}; static int N; s..
백준 2667번 단자번호붙이기 [ Java ]
2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 이전에 풀었던 2583: 영역 구하기와 똑같은 방식입니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] dx = new int[]{1, 0, -1, 0}; in..
백준 2583번 영역 구하기 [ Java ]
2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net BFS를 이용하여 풀었습니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] dx = new int[]{1, 0, -1, 0}; int[] ..
백준 7569번 토마토 [ Java ]
7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 지금까지 ArrayList를 사용하면 무조건 빠르다고 생각했는데 아니였습니다. 더보기 ArrayList의 0번째 원소를 지우는 연산은 뒤에 있는 원소를 전부 한 칸씩 당겨와야하기 때문에 원소의 수에 비례하는 시간이 됩니다. 글 읽기 - 자바 시간초과가 나는데... 코드 어떻게 손대야할지 모르겠네요... 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net 자료구조: Linked List 대 ArrayList 2014년 모두들 ..
백준 1012번 유기농 배추 [ Java ]
1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 이전에 풀었던 1926: 그림 문제를 참고하여 풀었습니다, import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); St..
백준 1697번 숨바꼭질 [ Java ]
1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 처음에 N==K인 반례를 놓쳤었습니다. import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList Q = new ArrayList(); int N = sc.nextInt(); int K = sc.nextInt(); if (N==K){ System.out.print(0)..
백준 4179번 불! [ Java ]
4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 틀렸을 때 참고한 반례입니다. 글 읽기 - 테스트 케이스 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(Syste..