본문 바로가기

Algorithm/백준풀이40

[알고리즘 문제풀이] 백준 17144 미세먼지 안녕!(JAVA코드) https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net /** * 1. 전체 맵을 돌며, 미세먼지 확산 * * 2. 공청기 돌리기 */ import java.util.*; import java.io.*; public class Main { public static int r,c,t; public static int[][] map; public static ArrayList cleaner = new ArrayList(); public static in.. 2022. 3. 24.
[알고리즘 문제풀이] 백준 16236 아기 상어(JAVA코드) https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net /** * 1. bfs 전체 탐색 * * 2. 탐색해서 먹을 수 있는 곳들을 체크. * * 3. 그 중 가장 거리가 가까운 물고기 먹기. * * 4. 거리가 가까운것들 중 우선순위 1. 위, 2. 왼쪽 * * 5. 이동은 1초 * * 6. 아기 상어가 몇초동안 물고기를 잡아먹을 수 있는지 출력. * * ---------------------------------------------- * .. 2022. 3. 23.
[알고리즘 문제풀이] 백준 20188 등산 마니아 (JAVA코드) https://www.acmicpc.net/problem/20188 20188번: 등산 마니아 동네 뒷 산에는 등산로가 있다. 등산로는 N개의 작은 오두막들이 N −1개의 오솔길로 이어진 형태이다. 한 오솔길은 두 개의 오두막을 양 방향으로 연결한다. 한 오솔길의 길이는 1이다. 어떤 오 www.acmicpc.net /** * 1. 트리 dp문제 * * 2. 두개의 오두막을 골라 가는 길의 다양성의 총 합을 출력 * 2-1) 예시 1-2-3 이렇게 연결되어 있을때, * 1-2 1-3 2-3 오두막을 선택할 수 있고, * 각각의 길의 개수는 1 - 2 - 2 개로 총 5이다. * 2-2) 내림차순 선택 불가. 2-1 * * 3. 즉 두개의 오두막을 골라 쓰이는 총 간선의 수를 출력해야한다. * * 4. 이.. 2022. 3. 18.
[알고리즘 문제풀이] 백준 15681 트리와 쿼리(JAVA코드) https://www.acmicpc.net/problem/15681 15681번: 트리와 쿼리 트리의 정점의 수 N과 루트의 번호 R, 쿼리의 수 Q가 주어진다. (2 ≤ N ≤ 105, 1 ≤ R ≤ N, 1 ≤ Q ≤ 105) 이어 N-1줄에 걸쳐, U V의 형태로 트리에 속한 간선의 정보가 주어진다. (1 ≤ U, V ≤ N, U ≠ V) www.acmicpc.net /* 1. U를 루트로 하는 서브트리에 속한 정점의 수를 출력 2. tree DP 3. DFS를 통해 서브트리의 노드 개수를 DP에 저장 */ import java.util.*; import java.io.*; public class BJ15681_트리와쿼리 { public static ArrayList[] tree; public st.. 2022. 3. 18.
[알고리즘 문제풀이] 백준 14499 주사위 굴리기(JAVA코드) https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net /** * 1. 처음 주사위는 모든 면이 0 * * 2. 지도를 이동하며 지도 위의 숫자가 0이 아니면 주사위 바닥면 복사. * * 3. 숫자가 0이면 주사위 바닥면이 지도로 복사. * * 4. 이동을 진행했을때마다 윗면에 쓰인 값을 출력 */ import java.io.*; import java.util.*; public clas.. 2022. 3. 18.
[알고리즘 문제풀이] 백준 14502 연구소 (JAVA코드) https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net /* 1. 벽 3개 건설 (dfs) 2. 바이러스 퍼트리기 3. 안전 영역 개수 파악 4. 모든 경우의 수에서 제일 큰 안전영역의 개수 반환 시간복잡도: 3개벽짓기(8^2^3) * 탐색(8^2) == 8^8 */ import java.io.*; import java.util.*; public class 연구소 { public static int n,m, result; public static int[][] m.. 2022. 3. 17.
[알고리즘 문제풀이] 백준 2613 숫자구슬 (JAVA코드) https://www.acmicpc.net/problem/2613 2613번: 숫자구슬 첫째 줄에 구슬의 개수 N과 그룹의 수 M이 주어진다. 둘째 줄에는 각 구슬이 적혀진 숫자가 왼쪽부터 차례로 주어진다. N은 300 이하의 자연수, M은 N이하의 자연수이며, 구슬에 적혀진 숫자는 100 www.acmicpc.net import java.util.*; import java.io.*; /** * 1. 이분탐색으로 최대값의 크기를 지정 * * 2. 그에 따른 그룹으로 나누기(각 그룹별 개수 체크) * * 3. 최대값이 최소가 될 때 출력 */ public class 숫자구슬 { public static int n,m, result; public static int[] groupList, beads; pub.. 2022. 3. 16.
[알고리즘 문제풀이] 백준 10845 큐 (JAVA코드) https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net /** * 1. 디큐 구현풀이 * * 2. n개의 명령의 수에 따라 수행 * * 3. 출력 명령문 마다 출력 * */ import java.io.*; import java.util.*; public class Test { public static void main(String[] args) throws IOException{ BufferedReader br = new Buffere.. 2022. 2. 27.