본문 바로가기
개인 공부/코딩테스트

[C++][백준 1026 ][정렬] 보물 :: seoftware

by seowit 2020. 2. 29.

문제

https://www.acmicpc.net/problem/1026

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다.

www.acmicpc.net

소스코드

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

int main(void) {
	//input
	int n;
	cin >> n;
	vector<int> A;
	vector<int> B;
	for (int i = 0; i < n; i++) {
		int a;
		cin >> a;
		A.push_back(a);
	}
	for (int i = 0; i < n; i++) {
		int b;
		cin >> b;
		B.push_back(b);
	}
	//peform
	sort(A.begin(), A.end());
	sort(B.begin(), B.end());

	int answer = 0;
	for (int i = 0; i < n; i++) {
		answer += A[i] * B[n -1 - i];
	}
	//output
	cout << answer;
}

A 배열과 B 배열을 정렬 한 후, A 배열의 작은 것과 B 배열의 큰 것을 순서대로 곱한 것을 모두 더한다.

댓글