Dev.baelanche

[백준 2217] 로프 본문

Data Structure & Algorithm/PS - JAVA

[백준 2217] 로프

baelanche 2019. 4. 22. 20:48
반응형

 

그리디 알고리즘 문제는 모두 최대값 구하는 방법만 찾아내면 된다.

 

입력이 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