품질을 오름차순으로 정렬해서 [가장 낮은 품질,가장 높은 품질]
맨 처음과 맨 끝을 대칭으로 짝 지어서 팔면 중간값은 가장 높은 품질이 된다.
[1,2,3,4]가 있으면 [1,4]를 짝지으면 중간값은 4가되어 [1,4] 묶음을 팔면 4+4=8로 팔 수 있다.
이런 식으로 반복하면 [1,4],[2,3]을 4+4+3+3=14가 된다.
코드를 더 짧게 작성하는 방법이 있다.
int[] cows = new int[n]; // 소 품질의 배열
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<n; i++){
cows[i] = Integer.parseInt(st.nextToken());
}
이렇게 한 줄로 줄여서 적을 수 있다.
int[] cows = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); // 소 품질의 배열
import java.util.*;
import java.io.*;
public class _20117 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine()); // 소의 수
int[] cows = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); // 소 품질의 배열
Arrays.sort(cows); // 오름차순 정렬
// 가장 작은 품질의 소와 가장 큰 품질의 소를 묶어서 더한다.
int result = 0;
for(int i=0; i<n/2; i++){
result += cows[n-1-i];
}
result *= 2;
// 홀수면 중간값을 추가로 더해준다.
if(n % 2 == 1){
result += cows[n/2];
}
System.out.println(result);
}
}