7562. 나이트의 이동 www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net import java.io.*; import java.util.*; // 210214 public class Main_BJ_7562_나이트의이동 { static int I; static int[][] map; static int[][] dist; static Queue q; static int[] dr = {-2, -2, -1, -1, 1, 1, 2 , 2 }; static int[] d..
1707. 이분 그래프 www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 www.acmicpc.net import java.io.*; import java.util.*; // 210214 public class Main_BJ_1707_이분그래프 { static int V, E; static int[][] map; static int[] colors; static int curColor; static int[][] arr; static ArrayList a..
[BJ] 2667. 단지번호붙이기 www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net import java.io.*; import java.util.*; // 210212 public class Main_BJ_2667_단지번호붙이기 { static int N; static int[][] map; static boolean[][] visited; static int[] dr = {-1, 0, 1, 0}; static int[] dc = {0, -1, 0, 1}; s..
7569. 토마토 www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 높이까지 추가된 3차원이라고 해서 풀이가 달라지지 않는다. 단!!! 높이의 경우 위, 아래만 달라지고 행과 열은 그대로이기 때문에!!! dh, dr, dc로 3중 for문을 돌리지 않고, 높이가 위 아래로 달라지는 경우와 / 상하좌우 탐색 두 경우로 나누어 탐색하여야 한다. import java.io.*; import java.util.*; // 210214 public..
[BJ] 2606. 바이러스 www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net import java.io.*; import java.util.*; // 210212 public class Main_BJ_2606_바이러스 { static int N, M; static int[][] map; static boolean[] visit; static int cnt = 0; static void DFS(int v) { visit[v] = true; for(int i=1; i
[BJ] 1260. DFS와 BFS www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import java.io.*; import java.util.*; //210212 public class Main_BJ_1260_DFS와BFS { static int N, M; //정점 수 N, 간선 수 M static int[][] map; static int[] visit; static Queue queue; static String..
[BJ] 11650. 좌표 정렬하기 www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net import java.io.*; import java.util.*; // 210212 public class Main_BJ_11650_좌표정렬하기 { static int N; static int[][] arr; public static void main(String[] args) { Scanner sc = new Scann..
[BJ] 1436. 영화감독 숌 www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net import java.io.*; import java.util.*; // 210211 public class Main_BJ_1436_영화감독숌 { static int N; static int[] numbers; static int pos; static boolean[] isSelected; static HashSet hashList = new HashSet(); static v..