문제
https://school.programmers.co.kr/learn/courses/30/lessons/12941
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
입출력

해설
자연수로만 이뤄져 있는 길이가 같은 배열 A, B가 있다.
각 배열의 값들을 곱해서 더한 값이 최소가 되도록 해야 한다.
즉 A1 * B1 + A2 * B2 + A3 * B3 ... An * Bn = 최소 를 이뤄야 한다.
최소가 되려면 큰 값이 다른 큰 값과 곱해지는 것을 피해야 될 것이다.
그러면 큰 값이 제일 작은 값과 곱해져서 더해지면 된다.
정답코드
더보기
'''
'25. 08. 05
1. 길이가 같은 배열 A, B 자연수로만 이뤄져있음.
2. 최종적으로 누적된 값이 최소가 되도록 해야 한다.
A1 * B1 + A2 * B2 + A3 * B3 => 최소
A는 오름차순, B는 내림차순으로 한 뒤 서로 곱해서 더해주면 최소가 되지 않을까?
'''
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
깃허브 : https://buly.kr/7x6pLMe
'코딩테스트 > programmers' 카테고리의 다른 글
| 프로그래머스 / 투포인터 / 숫자의 표현 (0) | 2025.08.07 |
|---|---|
| 프로그래머스 / 구현 / 이진 변환 반복하기 (0) | 2025.08.06 |
| 프로그래머스 / 문자열 / JadenCase 문자열 만들기 (0) | 2025.08.06 |
| 프로그래머스 / 구현 / 최댓값과 최솟값 (0) | 2025.08.05 |
| 프로그래머스 / 스택 / 올바른 괄호 (0) | 2025.08.05 |