Algorithms/Greedy Algorithm
-
[그리디 알고리즘] 신입 사원Algorithms/Greedy Algorithm 2021. 8. 8. 14:21
기출: 백준 1946 서류 등수를 기준으로 정렬한 다음, 면접 등수의 최솟값을 갱신하면서 하나씩 세면 된다 tc = int(input()) for t in range(tc): n = int(input()) ans = 1 cand = list() for i in range(n): cand.append(list(map(int,input().split()))) cand.sort(key = lambda x: x[0]) minVal = cand[0][1] for i in range(1,n): if minVal>cand[i][1]: ans += 1 minVal=cand[i][1] print(ans)
-
[그리디 알고리즘] 동전 0Algorithms/Greedy Algorithm 2021. 8. 8. 13:29
기출: 백준 11047 동전의 개수가 무한하고 큰 동전의 가치는 작은 동전 가치의 배수이다 n, k = map(int,input().split()) coins = list() for _ in range(n): coins.append(int(input())) ans = 0 coins.sort(reverse=True) for coin in coins: if k>0: ans += (k//coin) k -= (k//coin)*coin print(ans)
-
[그리디 알고리즘] ATMAlgorithms/Greedy Algorithm 2021. 8. 8. 13:26
기출 : 백준 11399 n번째 사람이 기다리는 시간을 D[n], 인출하는 시간을 t[n]이라고 하면 D[n] = D[n-1] + t[n]이다 D[0] + D[1] + D[2] + ... + D[n-1] = D[0] * n + D[1] * n-1 + ... 이다 n = int(input()) arr = list(map(int,input().split())) arr.sort() ans = 0 for i in range(len(arr)): ans += (arr[i]*(len(arr)-i)) print(ans)
-
[그리디 알고리즘] 무지의 먹방 라이브 ★☆☆Algorithms/Greedy Algorithm 2021. 2. 20. 19:14
문제 : 무지는 먹방을 하려고 한다. 먹방 시작 후 K초에 네트워크 에러가 발생했다. 에러 복구 후 먹을 음식은? 무지는 1초에 1의 음식을 먹을 수 있다 1초마다 음식의 종류가 바뀌며 그 종류는 리스트로 제공된다 입출력 예시 food_times k result [3,1,2] 5 1 음식의 양을 기준으로 오름차순으로 정렬한 뒤 가장 적은 음식부터 하나씩 먹으면 된다 위 예시를 정렬하면 [1,2,3]이 된다 2번 음식을 다 먹는 데 걸리는 시간은 1*3 이므로 k는 5-3=2가 된다 3번 음식을 다 먹는 데 걸리는 시간은 2*2 이므로 남은 시간 안에 다 먹을 수 없다 따라서 현재 상황 [2,0,1] 에서 2초 뒤 상황을 보면 된다 2초 뒤에는 [1,0,0]이 되고 다음 먹을 음식인 1이 정답이 된다 #i..
-
[그리디 알고리즘] 만들 수 없는 금액 ★☆☆Algorithms/Greedy Algorithm 2021. 2. 17. 23:08
문제 : N개의 동전을 가지고 있을 때 만들 수 없는 금액의 최솟값을 구하라 입력 조건 첫째 줄에 동전의 개수를 나타내는 양의 정수 N이 주어진다 (1 n; for (int i = 1;i > coin[i]; sort(coin, coin + n); chk(); while (check[ans]) ans++; cout > coin[i]; sort(coin, coin + n); for (int i = 0;i = coin[i]) target += coin[i]; else break; } cout