Algorithm & SQL/BAEKJOON
백준 JAVA 2217 로프
YoonJong
2022. 8. 13. 22:00
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
반응형