시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Back_5545 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int dP = Integer.parseInt(st.nextToken());
int tP = Integer.parseInt(st.nextToken());
int sum = Integer.parseInt(br.readLine());
int ans = sum/dP;
ArrayList<Integer> t = new ArrayList<Integer>();
for (int i = 0; i < N; i++) {
t.add(Integer.parseInt(br.readLine()));
}
Collections.sort(t,Comparator.reverseOrder());
for (int i = 0; i < t.size(); i++) {
sum+=t.get(i);
int temp =sum/((i+1)*tP + dP );
if(temp<ans)break;
ans = temp;
}
System.out.println(ans);
}
}
- 이 문제는 그리디 알고리즘을 다루는 문제입니다.
- 처음에 실패를 했는데, 토핑을 하나도 올리지 않는 경우에 대해서 고려하지 않았기 때문입니다.
- 각각의 값을 받고, Collections 에서 순서를 바꿔서 내림차순으로 바꿔줍니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_2644 촌수계산(자바) / 그래프 탐색 (0) | 2021.07.14 |
---|---|
백준_17204 죽음의 게임(자바) / 그래프 탐색 (0) | 2021.07.13 |
백준_18310 안테나(자바) / 그리디 알고리즘 (0) | 2021.07.11 |
백준_19941 햄버거 분배(자바) / 그리디 알고리즘 (0) | 2021.07.10 |
백준_11501 주식(자바) / 그리디 알고리즘 (0) | 2021.07.09 |