백준|14241번|슬라임 합치기

JSK·2022년 7월 31일
0

자바 PS풀이

목록 보기
41/51

문제설명
수열을 입력받고 두 수를 합치면 x*y만큼의 점수를 얻고 합친 두 수는 x+y가 된다고 할 때 얻을 수 있는 가장 큰 점수를 구하는 문제입니다.

작동 순서
1. 수열의 길이를 입력받습니다.
2. 수열을 입력받습니다.
3. 수열을 정렬합니다.
4. 수열을 앞의 수부터 차례대로 합쳐가면서 점수를 더합니다.
5. 최종 점수를 출력합니다.

소스코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class 백준_14241번_슬라임합치기 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        Integer[] slime = new Integer[N];
        int sum=0;
        StringTokenizer st = new StringTokenizer(br.readLine());
        for(int i=0;i<N;i++) slime[i]=Integer.parseInt(st.nextToken());
        Arrays.sort(slime);
        int size=slime[0];
        for(int i=1;i<N;i++) {
            sum+=slime[i]*size;
            size+=slime[i];
        }
        System.out.print(sum);
    }
}
profile
학사지만 AI하고 싶어요...

0개의 댓글