문제설명
소스코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;
public class Main
{
public static void main(String[] args) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int A[] = new int[n];
Integer B[] = new Integer[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; st.hasMoreTokens() == true; ++i) A[i] = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
for(int i = 0; st.hasMoreTokens() == true; ++i) B[i] = Integer.parseInt(st.nextToken());
Arrays.sort(A);
Arrays.sort(B, Collections.reverseOrder());
int sum = 0;
for(int i = 0; i < n; ++i) sum += A[i] * B[i];
System.out.print(sum);
}
}
설명
- A는 오름차순으로 정렬하고, B는 내림차순으로 정렬하여 인덱스가 같은 수 끼리 곱해서 더한 값을 출력한다.
배열의 오름차순과 내림차순 정렬
오름차순 정렬
int A[] = new int[n]; StringTokenizer st = new StringTokenizer(br.readLine()); for(int i = 0; st.hasMoreTokens() == true; ++i) A[i] = Integer.parseInt(st.nextToken()); Arrays.sort(A); // 오름차순 정렬
내림차순 정렬Integer B[] = new Integer[n]; //Integer로 박싱 StringTokenizer st = new StringTokenizer(br.readLine()); for(int i = 0; st.hasMoreTokens() == true; ++i) B[i] = Integer.parseInt(st.nextToken()); Arrays.sort(B, Collections.reverseOrder()); //내림차순 정렬, 포장 객체만 올 수 있음
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[Java] 백준 1015번 문제 (수열 정렬) (0) | 2023.10.02 |
---|---|
[Java] 백준 1417번 문제 (국회의원 선거) (0) | 2023.10.01 |
[Java] 백준 9663번 문제 (N-Queen) (0) | 2023.08.29 |
[Java] 백준 1302번 문제 (베스트 셀러) (0) | 2023.08.13 |
[Java] 백준 1920번 문제 (수 찾기) (0) | 2023.08.13 |