목록프로그래밍 언어/알고리즘 (12)
가희의자기개발블로그
ㄴㅓ무 쉬워서 보니 초등용 문제였따....! import java.util.Scanner; public class GreedyAlgorithm03 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); int A =0; int B = 0; int C = 0; if(T%10 != 0){ System.out.println(-1); }else{ A += T / 300; T -= A*300; B += T/60; T -= B*60; C += T/10; System.out.println(A+" "+B+" "+C); } } } www.acmicpc.net/problem/10162 10..
www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net import java.util.Scanner; public class GreedyAlgorithm01 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int input = scan.nextInt(); int count = 0; while(true){ if(input %5 ==0){ count += input/5; break;..
백준을 풀다가 다익스트라 알고리즘이 나왔다. 분명히 학부때 배운 내용인데 오랜만에 하려니 기억이 잘 나지 않아서 책을 뒤져 봤다. 해당 알고리즘은 최단 경로를 구할 때 많이 사용한다. 가중치가 없는 그래프에서 최단 경로를 찾는 방법은 너비 우선 검색으로 구현하면 되지만, 가중치가 있는 경우에는 BFS만 가지고는 문제를 해결할 수 없다. 모서리 또는 정점에 가중치가 부여된 그래프에서 두 정점 사이의 최단 경로를 찾을 때는 다익스트라 알고리즘을 이용하면 된다. 이 알고리즘에서는 어떤 시작점 S가 주어졌을 때, 그 정점에서 시작하여 다른 모든 정점으로 가는 최단 경로를 찾을 수 있기 때문에, 결과적으로 어떤 최종 목적지 t로 가는 최단 경로를 구할 수 있다. 기본적인 개념은 프림 알고리즘과 매우 비슷하다. 각..
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.Arrays; import java.util.Comparator; public class GreedyAlgorithm02 { public static void main(Strin..
https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 www.acmicpc.net 6월 25일차 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); // 여학생수 int m = scan.nextInt(); // 남학생 수 int k = scan.nextInt(); /..
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); String[] minus = scan.nextLine().split("-"); int min = 0; f..
import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int totalA = scanner.nextInt(); int[][] arr = new int[totalA][2]; for (int i = 0; i < totalA; i++) { arr[i][0] = scanner.nextInt(); arr[i][1] = scanner.nextInt(); } Arrays.sort(arr, new Comparator() { @Override publ..
https://www.acmicpc.net/problem/10610 10610번: 30 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶� www.acmicpc.net import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class trente { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String[] input = scan.nextLine().split(..