반응형
사용 언어는 자바이다.
다음은 출력 예시다.
해결 방법
최댓값을 구하려면 큰 수들을 먼저 곱해서 점수를 넣고 더한 후 새로운 배열 요소로 집어넣어 최댓값을 구한다.
1. 처음 숫자 개수를 입력받고 다음 문자들을 받는데 띄어쓰기 기준으로 배열로 나눈다.
2. 배열 정렬 메서드를 위해 문자열 배열을 int형 배열로 바꾼다.
3. 정렬 메서드를 이용해서 정렬한다.
4. 배열 맨뒤 큰 수부터 곱해져서 score 변수에 값을 차례로 더한다.
5. 스코어에 들어간 큰 숫자 2개는 배열의 이전 인덱스에 값을 넣어서 다음 차례에 이용되도록 한다.
6. 4,5번을 반복문을 통해 이용하면 스코어가 나온다.
아래는 해결 코드이다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.io.IOException;
public class Example{
public static void main(String[] args)throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int num=Integer.parseInt(br.readLine());
String[] str=br.readLine().split(" ");
int[] arr=new int[num];
int score=0;
for(int i=0;i<num;i++)arr[i]=Integer.parseInt(str[i]);
Arrays.sort(arr);
for(int i=num-1;i>0;i--) {
score+=arr[i]*arr[i-1];
arr[i-1]=arr[i]+arr[i-1];
}
System.out.println(score);
}
}
반응형
댓글