그리디 알고리즘 74

백준(JAVA) 13305번 주유소 풀이

Java으로 구현한 13305번 주유소 문제 풀이입니다. https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System..

백준(JAVA) 9576번 책 나눠주기 풀이

Java로 구현한 9576번 책 나눠주기 문제 풀이입니다. https://www.acmicpc.net/problem/9576 9576번: 책 나눠주기 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); for (int i=0; i

백준(Python) 9576번 책 나눠주기 풀이

Python으로 구현한 9576번 책 나눠주기 문제 풀이입니다. https://www.acmicpc.net/problem/9576 9576번: 책 나눠주기 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 www.acmicpc.net t = int(input()) for _ in range(t) : n, m = map(int, input().split()) flag = [False] * (n + 1) data = [] for _ in range(m) : a, b = map(int, input().split()) data.append((a, b)) data.sort(k..

백준(JAVA) 1202번 보석 도둑 풀이

Java로 구현한 1202번 보석 도둑 문제 풀이입니다. https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net import java.util.Collections; import java.util.PriorityQueue; import java.util.StringTokenizer; import java.io.*; public class Main { public static void main..

백준(Python) 1202번 보석 도둑 풀이

Python으로 구현한 1202번 보석 도둑 문제 풀이입니다. https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net import heapq n, k = map(int, input().split()) data = [] for _ in range(n) : w, v = map(int, input().split()) # 무게, 가격 heapq.heappush(data, (w, v)) bag = [..

백준(JAVA) 1826번 연료 채우기 풀이

Java로 구현한 1826번 연료 채우기 문제 풀이입니다. https://www.acmicpc.net/problem/1826 1826번: 연료 채우기 첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStrea..

백준(Python) 1826번 연료 채우기 풀이

Python으로 구현한 1826번 연료 채우기 문제 풀이입니다. https://www.acmicpc.net/problem/1826 1826번: 연료 채우기 첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경 www.acmicpc.net import heapq n = int(input()) temp = [] for _ in range(n) : heapq.heappush(temp, list(map(int, input().split()))) l, p = map(int, input().split()) result = 0 heap = [..

카테고리 없음 2022.10.14

백준(JAVA) 1715번 카드 정렬하기 풀이

Java로 구현한 1715번 카드 정렬하기 문제 풀이입니다. https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); PriorityQueue pq = new P..

백준(Python) 1715번 카드 정렬하기 풀이

Python으로 구현한 1715번 카드 정렬하기 문제 풀이입니다. https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net import heapq n = int(input()) heap = [] for _ in range(n) : heapq.heappush(heap, int(input())) if n == 1 : print(0) else : total = 0 while len(heap) > 1 : # 가장 작은 두개의 값 꺼내기 pop_1..

백준(JAVA) 2217번 로프 풀이

Java로 구현한 2217번 로프 문제 풀이입니다. https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] data = new int[n]; for (in..