-
프로그래머스 - 최솟값 만들기 [C++]문제 풀이/프로그래머스 2023. 8. 21. 23:37반응형
이 문제는 정렬을 이용한 문제이다. 길이가 같은 두 배열에서 하나씩 숫자를 뽑아 두 수를 곱하고, 이를 누적하여 합한 값이 가장 최소가 되게 하는 문제인데, 곱셈의 값은 두 수의 차가 클수록 작아지는 경향이 있다는 사실을 이용하면 쉽게 풀 수 있다.
#include <iostream> #include <vector> #include <algorithm> using namespace std; int solution(vector<int> A, vector<int> B) { int answer = 0; sort(A.begin(), A.end()); sort(B.begin(), B.end(), greater<int>()); int length = A.size(); for (int i = 0; i < length; i++) { int a = A[i]; int b = B[i]; answer += a * b; } return answer; }
반응형'문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 숫자의 표현 [C++] (0) 2023.08.22 프로그래머스 - 이진 변환 반복하기 (0) 2023.08.21 프로그래머스 - [1차] 셔틀버스 [C++] (0) 2023.08.21 프로그래머스 - 가장 긴 팰린드롬 [C++] (0) 2023.08.17 프로그래머스 - 입국심사 [C++] (0) 2023.08.17