https://www.acmicpc.net/problem/2217
문제
풀이
import java.util.Arrays;
import java.util.Scanner;
public class Main {
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);
int max = arr[0] * N;
for(int i = 1; i<N; i++){
if(arr[i]* (N-i) > max){
max = arr[i]* (N-i);
}
}
System.out.println(max);
}
}
문제에 접근하기 앞서서 조건을 먼저 제대로 이해해야한다. 각 줄은 병렬로 배치될 수 있으며 모든 줄을 사용할 필요가 없었다. 즉, 정렬을 먼저 진행하면 이 후 모든 줄을 사용할 필요가 없다는 조건을 더욱 편하게 사용할 수 있다고 생각했다. 따라서 배열을 먼저 정렬한 뒤에 계산을 진행하는 방식을 선택했다.
'문제 풀이 > 백준' 카테고리의 다른 글
[백준] 1758번. 알바생 강호(JAVA) (0) | 2024.01.16 |
---|---|
[백준] 13305번. 주유소 (JAVA) (0) | 2024.01.16 |
[백준] 2828번. 사과 담기 게임 (JAVA) (0) | 2024.01.15 |
[백준] 14916번. 거스름돈 (JAVA) (0) | 2024.01.15 |
[백준] 1343번. 폴리오미노 (JAVA) (0) | 2024.01.15 |