본문 바로가기
Algorithm & SQL/BAEKJOON

백준 JAVA 2217 로프

by YoonJong 2022. 8. 13.
728x90

https://www.acmicpc.net/problem/2217

 

2217번: 로프

N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하

www.acmicpc.net

예제 입출력대로 나와서 바로 제출하면 틀린다.

반례를 찾아보려고 질문검색을 했는데 질문들이 전부다 반례를 찾는 내용이었다..

반례를 찾아서 돌렸는데 안나와서 코드 수정 후 제출 -> 틀림

다른 반례를 찾아서 돌렸는데 코드 수정 후 제출 -> 통과

 

조금 더 다양한 예제가 있었으면 좋겠다.

 

package BAEKJOON.Silver.Ⅳ;

import java.util.Arrays;
import java.util.Scanner;

public class NO2217 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        //오름차순으로 정렬
        Arrays.sort(arr);

        // 최댓값을 구하기 위한 max 변수
        int max = Integer.MIN_VALUE;
        // 로프를 몇개쓸건지
        int rope = 0;

        // 가장 긴 로프부터 비교
        for (int i = arr.length - 1; i >= 0; i--) {
            // ++ 하고 비교
            ++rope;
            // 가장 긴줄 * 1 < 두번째긴줄 * 2 ... 계속 비교
            if ( arr[i] * rope > max ) {
                max = arr[i] * rope;
            }
        }
        System.out.println(max);
    }
}
728x90

'Algorithm & SQL > BAEKJOON' 카테고리의 다른 글

백준 JAVA 4796 캠핑  (0) 2022.08.14
백준 JAVA 13458 시험 감독  (0) 2022.08.14
백준 JAVA 11399 ATM  (0) 2022.08.13
백준 JAVA 11047 동전0  (0) 2022.08.13
백준 JAVA 1977 프린터 큐  (0) 2022.08.12

댓글