[C++] 백준 1026 : 보물

Kim Nahyeong·2022년 1월 6일
0

백준

목록 보기
36/157

#include <iostream>
#include <algorithm>
using namespace std;

int main(int argc, char **argv){
    int N, S = 0; // 초기화 안해줘서 오류났음
    scanf("%d",&N);
    int * A = new int[N];
    int * B = new int[N];

    for(int i=0; i<N; i++){
        scanf("%d",&A[i]);
    }

    sort(A, A+N, greater<int>()); // 역순 정렬

    for(int i=0; i<N; i++){
        scanf("%d",&B[i]);
    }

    sort(B, B+N);

    for(int i=0; i<N; i++){
        S += A[i] * B[i];
    }

    printf("%d",S);

    return 0;
}

오늘의 키포인트

  • 하나는 역순, 하나는 그냥 정렬을 써서 서로 곱해주면 최소값을 얻을 수 있다.
  • S = 0으로 초기화 하지 않으면 오류가 난다.
  • 벡터를 이용해서 풀어보자.

0개의 댓글