목록알고리즘 (97)
It's easy, if you try
문제 로그인 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int N; static List blocks; static Block nowB; static boolean map[][]; static List removeList; static int point; static class Block { int t; int x1; int y1; int x2; int y2; Block(int t, int x1, int y1, int x2, int y2) { this.t = t; this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; } } public static vo..
문제 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static ArrayList[][] map; // 상어의 위치 static ArrayList[][] smellMap; // 상어의 냄새 정보 static Map orders; // 상어의 이동 우선순위 static int N; // 격자 범위 static int M; // 상어 숫자 static int k..
문제 23290번: 마법사 상어와 복제 첫째 줄에 물고기의 수 M, 상어가 마법을 연습한 횟수 S가 주어진다. 둘째 줄부터 M개의 줄에는 물고기의 정보 fx, fy, d가 주어진다. (fx, fy)는 물고기의 위치를 의미하고, d는 방향을 의미한다. 방향 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int minNum; // 상어 이동 방향 사전순 제일 높은것 (숫자가 낮은) static int maxFishNum; // 상어가 가장 많이 먹을 수 있는 물고기 수 static ArrayList[][] map; static int[][] smellMap; static ArrayList copyFish;..
문제 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main { static int N; static double[][] map; static int total = 0; static int[] dx = {0,1,0,-1}; static int[] dy = {-1,0,1,0}; static double[] percent = {1,1,2,2,7,7,10,10,5,0}; static in..
문제 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int[] dx = { -1, -1, 0, 1, 1, 1, 0, -1}; static int[] dy = { 0, 1, 1, 1, 0, -1, -1, -1}; static List[][] map; static int N; static class Ball { int x, y, m, s, d; // cn..
문제 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int N, M, oil, cnt = 0; static int[][] map, start, dest; static int[] taxi; public static void main(String[] args) throws IOException { BufferedReader br = new Buffered..
문제 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static Deque deque; static char[] func; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamW..
문제 17089번: 세 친구 첫째 줄에 사람의 수 N(3 ≤ N ≤ 4,000), 친구 관계의 수 M(0 ≤ M ≤ 4,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계를 의미하는 두 정수 A, B가 주어진다. 친구 관계는 A와 B, 그리고 B와 A가 친 www.acmicpc.net 풀이 A,B,C가 친구여야 한다는 점을 주의해야합니다! 이 점이 3중 for문 작성을 가능하게 하기 때문입니다. (친구가 아닌 경우 가지치기 가능) import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedRea..
문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int[] list, nums; static StringBuilder sb; public static void main(String[] args) throws Exception { BufferedReader br = new ..
문제 https://www.acmicpc.net/problem/10211 10211번: Maximum Subarray 크기 N인 정수형 배열 X가 있을 때, X의 부분 배열(X의 연속한 일부분) 중 각 원소의 합이 가장 큰 부분 배열을 찾는 Maximum subarray problem(최대 부분배열 문제)은 컴퓨터 과학에서 매우 잘 알려져 있 www.acmicpc.net 풀이 1. 분할 정복(이분 탐색) 풀이 import java.util.*; import java.io.*; public class Main_BOJ_10211_MaximumSubarray { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); st..