문제
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 배열의 큰 것을 순서대로 곱한 것을 모두 더한다.
'개인 공부 > 코딩테스트' 카테고리의 다른 글
| [C++][백준 1697][BFS DFS] 숨바꼭질 :: seoftware (0) | 2020.02.29 | 
|---|---|
| [C++][백준 7576][BFS / DFS] 토마토 :: seoftware (0) | 2020.02.29 | 
| [C++][백준 1427][정렬] 소트인사이드 :: seoftware (0) | 2020.02.29 | 
| [미해결][Kick Start] Practice Round 2019 Kickstart Alarm :: seoftware (0) | 2020.02.29 | 
| [Kick Start][Practice Round 2019] Mural :: seoftware (0) | 2020.02.28 | 
댓글