ALGORITHM 299

[JAVA] 백준 2583- 영역 구하기

https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.StringTokenizer; public class Main { static ..

ALGORITHM 2022.11.27

[JAVA] 알고리즘 : 그리디- 원더랜드 (크루스칼, 프림)

크루스칼 import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; class Edge implements Comparable{ public int v1; // 정점 1 public int v2; // 정점 2 public int cost; // 두 정점을 연결하는 비용 Edge(int v1, int v2, int cost){ this.v1 = v1; this.v2 = v2; this.cost = cost; } @Override public int compareTo(Edge ob){ return this.cost - ob.cost; // cost 오름차순 정렬 } } class Main{ static int[] u..

ALGORITHM 2022.11.25

[JAVA] 알고리즘 : 그리디- 친구인가? (Disjoint-Set : Union&Find)

import java.util.Scanner; class Main{ static int[] unf; public static int Find(int v){ // v번 학생의 집합 번호를 리턴 if(v==unf[v]) return v; else return unf[v] = Find(unf[v]); } public static void Union(int a, int b){ int fa = Find(a); int fb = Find(b); if(fa!=fb) unf[fa] = fb; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); unf =..

ALGORITHM 2022.11.25

[JAVA] 알고리즘 : 그리디- 다익스트라 알고리즘

import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Scanner; class Edge implements Comparable{ public int vex; // 정점 public int cost; // 가중치 비용 Edge(int vex, int cost){ this.vex = vex; this.cost = cost; } @Override public int compareTo(Edge ob){ return this.cost - ob.cost; // 가중치 오름차순 // Edge 형의 priority queue를 만들면..

ALGORITHM 2022.11.25

[JAVA] 백준 13458- 시험 감독

https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throw..

ALGORITHM 2022.11.25

[JAVA] 백준 1946- 신입 사원

https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.StringTokenizer; class Test implements Comp..

ALGORITHM 2022.11.24

[JAVA] 백준 11000- 강의실 배정

https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.PriorityQueue; import java.util.StringTokenizer; class Class implements Comparable..

ALGORITHM 2022.11.24

[JAVA] 백준 2217- 로프

https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = ..

ALGORITHM 2022.11.23

[JAVA] 백준 11399- ATM

https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { Buffered..

ALGORITHM 2022.11.23