Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 2217] 로프 본문
반응형
그리디 알고리즘 문제는 모두 최대값 구하는 방법만 찾아내면 된다.
입력이 40, 20, 30, 10 일때를 예로 들어보겠다.
1. 로프 중량을 오름차순으로 정렬한다. => 10, 20, 30, 40
2-1. 4개 로프를 모두 사용했을때 10 로프는 10*4의 무게를 들 수 있다.
2-2. 10을 제외한 3개 로프를 사용했을때 20 로프는 20*3의 무게를 들 수 있다.
2-3. 10, 20을 제외한 2개 로프를 사용했을때 30 로프는 30*2의 무게를 들 수 있다.
2-4. 40 로프만 사용했을때 40*1의 무게를 들 수 있다.
3. 위 경우 중 최대값을 출력한다.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a[] = new int[n];
for(int i=0; i<n; i++)
a[i] = sc.nextInt();
Arrays.sort(a);
int max = 0;
for(int i=0; i<n; i++) {
int cnt = 0;
for(int j=i; j<n; j++)
cnt++;
if(max < a[i]*cnt)
max = a[i]*cnt;
}
System.out.println(max);
}
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 2212] 센서 (0) | 2019.04.22 |
---|---|
[백준 1969] DNA (0) | 2019.04.22 |
[백준 1700] 멀티탭 스케줄링 (0) | 2019.04.22 |
[백준 3049] 다각형의 대각선 (0) | 2019.04.19 |
[백준 11006] 남욱이의 닭장 (0) | 2019.04.19 |
Comments