https://school.programmers.co.kr/learn/courses/30/lessons/12941
알게된 것
- 이 문제를 어떻게 풀어야 되는지. 소트한 다음 제일 작은 수와 제일 큰 수를 곱한 것을 더하는 식으로 하는 것이 최솟값을 찾는 방법이라는 것.
- 정렬 후 내적으로도 inner_product 로도 푼 사람이 있더라.
내코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> A, vector<int> B)
{
int answer = 0;
// sort
sort(A.begin(), A.end());
sort(B.begin(), B.end());
// min * max +
for(int i = 0; i < A.size(); i++) {
answer += A[i] * B[B.size() - i - 1];
}
return answer;
}
친구리뷰
어떻게 푸는 지 알려줌.
시도
머리로만 시도. 도저히 모르겠어서 물어봄. 아직까지 수준이 안된다ㅠ
dp 로 풀어야 되는 것인지 생각만 했었음...
728x90
반응형
'자료구조 알고리즘 > 코딩테스트' 카테고리의 다른 글
숫자의 표현 (0) | 2022.09.16 |
---|---|
올바른 괄호 (0) | 2022.09.16 |
이진 변환 반복하기 (0) | 2022.09.16 |
JadenCase 문자열 만들기 (0) | 2022.09.16 |
최댓값과 최솟값 (0) | 2022.09.16 |