알고리즘 245

[JAVA] 백준 2668번- 숫자고르기

https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; public class Main { public static boolean[] visited; public static int[] arr; public static int..

ALGORITHM 2022.12.01

[JAVA] 백준 10971번- 외판원 순회2

https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[][] arr; static boolean[] visited; stati..

ALGORITHM 2022.11.30

[JAVA] 백준 6603- 로또

https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int[] arr, nums; public static boolean[] visited; public..

ALGORITHM 2022.11.29

[JAVA] 백준 10819번- 차이를 최대로

https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[] arr, nums; static boolean[] visited; static int n, result = 0; public s..

ALGORITHM 2022.11.29

[JAVA] 백준 10974- 모든 순열

https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main{ static int n; static int[] arr; static boolean[] visited; public static void dfs(int cnt){ if(cnt == n){ for(int x : arr){ System.out.print(x+" "); } System.out.p..

ALGORITHM 2022.11.29

[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