728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
이 문제는 두 배열 A, B에서 각각 하나씩 수를 뽑아 곱한 합을 최소화 시키는 문제이다. 이 값을 최소화시키려면, A의 배열 중 가장 큰 요소와 B의 배열 중 가장 작은 요소를 곱해주는 형식이 되어야 한다.
따라서, A 배열은 오름차순으로 정렬해주고, B 배열은 내림차순으로 정렬해주면 두 배열 곱 합의 최솟값을 구해줄 수 있다.
정답 코드
C++
#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.rbegin(), B.rend());
for (int i = 0; i < A.size(); i++)
answer += A[i] * B[i];
return answer;
}
python
def solution(A,B):
answer = 0
A.sort()
B.sort(reverse = True)
for i in range(len(A)) :
answer += A[i] * B[i]
return answer
728x90
'Algorithm > PS' 카테고리의 다른 글
[C++, python] BOJ, 백준 2083 - 럭비 클럽 (0) | 2023.02.28 |
---|---|
[C++, python] 프로그래머스 - 숫자의 표현 (0) | 2023.02.27 |
[C++, python] 프로그래머스 - 둘만의 암호 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 햄버거 만들기 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 성격 유형 검사하기 (1) | 2023.02.26 |