그리디
-
그리디 알고리즘> 1931. 회의실배정ALGORITHM/BAEKJOON 2020. 9. 23. 23:38
1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제설명: N개 회의가 주어지고 각각의 시작시간과 종료시간이 주어진다. 한 개의 회의실로 최대한 많은 회의를 할 수 있도록, 회의시간이 겹치지 않게 배정하는 방법을 생각해야 한다. [1차 시도] N = int(input()) timetable = [list(map(int,input().split())) for _ in range(N)] timetable.sort() ans = 1 minV = 2**31 for i in range(len(timetable)): if timetable[i][1] < minV: minV = timetable[i][1] else: if timetable..
-
그리디 알고리즘> 11047. 동전 0ALGORITHM/BAEKJOON 2020. 9. 17. 09:40
11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제설명: N개 종류의 동전이 주어지고, N개의 종류별 동전들을 적절히 사용해 그 합을 K로 만드는 동전의 최소 개수를 구하는 문제이다. [1차 시도] N, K = map(int,input().split()) coin = [int(input()) for x in range(N)] ans = 0 coin_sum = 0 originK = K for i in range(N-1,-1,-1): if coin[i]
-
코딩테스트 연습> 탐욕법(Greedy)> 구명보트ALGORITHM/Programmers 2020. 8. 14. 07:00
코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제설명: people로 주어지는 배열에 사람들의 몸무게가 주어지고, limit 변수로 구명보트의 제한 무게가 주어진다. 구명보트 1개는 한 번에 최대 2명씩 태울 수 있으므로 모든 사람을 구출하기 위해 필요한 구명보트의 최소개수를 구하는 문제이다. [1차 시도] def solution(people, limit): ans = 0 people.sort(reverse=True) start = len(people)-1 for i in ran..