Coding_Test_C++

BaekJoon 1026번: 보물

풀이법

1) 그리디 접근법을 사용하면 쉽게 풀 수 있는 문제이다.

2) A배열은 오름차순으로 B배열은 내림차순으로 정렬 후 이를 곱한 값들은 더하면 답을 쉽게 구할 수 있다.

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

int n;
vector<int> a;
vector<int> b;
long long ans=0;
bool compare(int a, int b)
{
	if (a <= b)
	{
		return false;
	}
	else
		return true;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		int num;
		cin >> num;
		a.push_back(num);
	}
	for (int i = 0; i < n; i++)
	{
		int num;
		cin >> num;
		b.push_back(num);
	}
	sort(a.begin(), a.end());//오름차순
	sort(b.begin(), b.end(), compare);
	for (int i = 0; i < n; i++)
	{
		ans += a[i] * b[i];
	}
	cout << ans;
}

github.com/pearlcrum/CodingTest/tree/main

 

pearlcrum/CodingTest

ForPracticingCodingTest. Contribute to pearlcrum/CodingTest development by creating an account on GitHub.

github.com

 

'Coding_Test_C++' 카테고리의 다른 글

BaekJoon 9095번: 1, 2, 3 더하기  (0) 2021.04.11
BaekJoon 12865번: 평범한 배낭  (0) 2021.04.10
BaekJoon 2217번: 로프  (0) 2021.04.09
BaekJoon 1074번: Z  (0) 2021.04.08
BaekJoon 2447번: 별 찍기 - 10  (0) 2021.04.08