koenjazh-CNfresde
짬뽕얼큰하게의 맨땅에 헤딩 :: 백준(BOJ) 1026 보물

이 문제는 A만 재배열하라고 했지만, A의 재배열을 통해 B에 대응하는 방법을 생각하면 50! 의 복잡도가 나오게 된다. 


따라서 A B를 정렬하여 A배열의 가장 낮은값과 B배열의 가장 높은값일 곱했다.


B 재배치는 하지말라 하였으나,  A배열의 순서 출력이 아니라 최소 비용의 출력이기때문에 A, B를 재배치하여 최소값을 구하였다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int A[100];
 
int B[100];
int main(void){
  int N;
  scanf("%d"&N);
  for(int i = 0 ; i < N; i++){
    scanf("%d", A + i);
  }
  for(int i = 0 ; i < N; i++){
    scanf("%d", B + i);
  }
 
  sort(A, A + N);
  sort(B, B + N);
  int sum = 0;
  for(int i = 0; i < N; i++){
    sum += A[i] * B[N - 1 - i];
  }
  printf("%d", sum);
}
 
cs


'알고리즘' 카테고리의 다른 글

백준(BOJ) 1002 터렛  (0) 2018.11.26
백준(BOJ) 2442 별찍기-5  (0) 2018.11.26
백준(BOJ) 2751 수 정렬하기2  (0) 2018.11.26
백준(BOJ) 2309 일곱 난쟁이  (0) 2018.11.26
백준(BOJ) 2609 최대공약수와 최소공배수  (0) 2018.11.26
블로그 이미지

짬뽕얼큰하게

,