-선택한 로프의 가장 작은 값 = 최대 중량 / 선택한 로프의 수 이므로
-최대 중량 = 선택한 로프의 가장 작은 값 * 선택한 로프의 수
-로프 리스트를 오름차순으로 정렬 후, 로프 리스트에서 작은 값부터 하나씩 제외하면서 최대 중량을 구한다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
public class Problem2217 {
static int ropeNum;
static ArrayList<Integer> eachRope = new ArrayList<Integer>();
static ArrayList<Integer> answer = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
ropeNum = Integer.parseInt(s);
for(int i = 0; i < ropeNum; i++){
String ropeStr = br.readLine();
eachRope.add(Integer.parseInt(ropeStr));
}
Collections.sort(eachRope);
//가장 작은 값을 하나씩 제거해 가면서 들 수 있는 최대 중량 찾는다
for(int i = 0; i < ropeNum; i++){
answer.add(eachRope.get(0) * eachRope.size());
eachRope.remove(0);
}
//answer배열 내림차순 정렬, 첫번째 요소가 최댓값이다
Collections.sort(answer, Collections.reverseOrder());
System.out.println(answer.get(0));
}
}
-answer 리스트를 설정할 필요 없이 이전 값과 현재 계산한 값을 대조하면서 설정하면 내림차순 정렬이 불필요하다.