java
-
[백준]5430. AC (Java)알고리즘/백준 2021. 8. 30. 21:46
💡 문제 분석 /** * R = 뒤집기, D = 첫 번째 숫자 버리기 * 첫 번째 숫자를 버리는 것은, 시간이 걸리지 않지만, R이 나올 때마다 뒤집는 것은 시간이 매우 오래걸릴 것 * R이 나오면, 오른쪽 방향에서 왼쪽 방향으로 바꾸고 커서를 뒤로 옮기면 뒤집는 형태가 되겠다. * D가 나오면, 커서를 한 칸 옮긴다 * 다 끝나면, 마지막에 설정된 방향으로, 양 방향 커서 사이에 수를 출력하자 */ ⌨️ 코드 JAVA import java.io.*; import java.util.*; public class Q5430 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int tc = sc.nextInt(); w..
-
[백준]4358. 생태학 (Java)알고리즘/백준 2021. 8. 30. 21:45
💡 문제 분석 /** * TreeMap * 정렬해서 출력하기 때문에 TreeMap을 사용하는게 좋겠다 */ ⌨️ 코드 JAVA import java.io.*; import java.util.*; public class Q4358 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String tree; TreeMap map = new TreeMap(); double cnt = 0; while((tree = br.readLine()) != null) { map.put(tree, map.getOrDefault(tree,..
-
[백준]3495. 아스키 도형 (Java)알고리즘/백준 2021. 8. 30. 21:45
💡 문제 분석 /** * 1. '/'가 나오면 0.5, 그 다음 대각선이 나올 때까지 점의 개수마다 + 1 * 2. 모든 높이별로 값을 구하자 */ ⌨️ 코드 JAVA import java.util.Scanner; public class Q3495 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int h = sc.nextInt(), w = sc.nextInt(); double cnt = 0; for(int i = 0; i < h; i++) { String s = sc.next(); int chk = 0; for (int j = 0; j < w; j++) { char c = s.charAt(j);..
-
[백준]2981. 검문 (Java)알고리즘/백준 2021. 8. 30. 21:44
💡 문제 분석 /** * 1. 주어진 숫자들을 나눴을 때 전부 같게 만드는 M을 구하라 * 2. 전부 다 해보는건, 10억까지라서 안될 듯 * 예제1) 6 34 38 * -> 34 - 6 = 28, 38 - 34 = 4, 28과 4의 약수를 구하면 될 듯? * * 예제2) 5 17 23 14 83 * -> 9, 3, 6, 66의 공통 약수 -> 3 */ ⌨️ 코드 JAVA import java.util.Arrays; import java.util.Scanner; public class Q2981 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new i..
-
[백준]2636. 치즈 (Java)알고리즘/백준 2021. 8. 30. 21:44
💡 문제 분석 /** * 1. 1. 치즈로 둘러싸인 공기는 제외하고, 외부 공기에 접촉되면 안되므로, 판의 가장자리에서 bfs를 한다 * 2. bfs를 돌면서 치즈를 만나면, 지워야 할 치즈이므로 표시를 해둔다 * 3. 치즈를 다 지울 때까지 반복 */ ⌨️ 코드 JAVA import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Q2636 { static int Y, X, piece = 0, ret = 0; static int[] dy = {-1, 0, 1, 0}; static int[] dx = {0, 1, 0, -1}; static int[][] map; static boolean[][] che..
-
[백준]2631. 줄세우기 (Java)알고리즘/백준 2021. 8. 30. 21:44
💡 문제 분석 /** * 1. 예제 * 3 7 5 2 6 1 4 * - 오름차순으로 정렬을 시켜야되는데, 현재 3, 5, 6이 원래 순서를 유지하는 가장 긴 순서 * - 3명은 제대로 줄을 서고 있으니깐, 나머지 네 명이 제 자리를 찾아가면 되겠다. * 즉, 주어진 수열에서 가장 긴 증가하는 수열의 길이를 구해서 전체 수에서 빼면 정답이 나오겠군. */ ⌨️ 코드 JAVA import java.util.Scanner; public class Q2631 { static int N; static int[] children, cache; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); c..
-
[백준]3190. 뱀 (Java)알고리즘/백준 2021. 8. 30. 21:44
💡 문제 분석 /** * 1. 뱀이 위치하고 있는 칸들을 덱에 저장시켜놓고 * 2. 뱀이 움직이는 과정을 진행한다, 머리가 몸에 닿으면 종료 */ ⌨️ 코드 JAVA import java.util.Deque; import java.util.LinkedList; import java.util.Scanner; public class Q3190 { static int N, K, L, d = 0, cnt = 0; static int[][] map; static char[] turn = new char[10001]; static int[] dy = {0, 1, 0, -1}, dx = {1, 0, -1, 0}; public static void main(String[] args) { Scanner sc = new ..
-
[백준]1916. 최소 비용 구하기 (Java)알고리즘/백준 2021. 8. 23. 18:42
💡 문제 분석 /** * # 계획 * 1. 출발지에서 도착지점까지 가는 최소 비용 구하기 -> 다익스트라, 벨만-포드, 플로이드 * 2. 출발지가 한 곳으로 정해져있고, 음수 가중치가 없으므로 다익스트라를 사용하자 * 3. 출발점에서 도착점을 갈 수 있는 경우만 입력으로 들어오므로 따로 처리는 안해도 될 듯 */ ⌨️ 코드 JAVA import java.util.*; public class Q1916 { static int N, M; static ArrayList[] adj; static int S, E; public static void main(String[] args) { // 입력 Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nex..