문제
https://school.programmers.co.kr/learn/courses/30/lessons/12941
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
해당 문제에서 최솟값을 만들기 위해서는 A, B배열 중에 A배열을 내림차순으로 정렬하고 B배열을 오름차순으로 정리한 다음 두 개의 배열을 순회하면서 곱한 값을 answer에 추가하면 최솟값을 만들 수 있다.
이를 구현한 코드는 다음과 같다.
🖥️ main.py
def solution(A,B) -> int:
"""
두 배열의 각각의 곱이 최소가 되기 위해서는 A배열은 내림차순으로 정렬 B배열은 오름차순으로 정렬 후
각 배열을 순회하면서 곱한 값을 더한 것이 최솟값이 될 수 있다.
"""
A: list[int] = sorted(A)
B: list[int] = sorted(B, key=lambda x: -x)
answer: int = 0
for a, b in zip(A, B):
answer += a * b
return answer
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스 LV2 튜플 (0) | 2023.07.17 |
---|---|
프로그래머스 LV2 영어 끝말잇기 (0) | 2023.07.17 |
프로그래머스 LV2 올바른 괄호 (0) | 2023.07.17 |
프로그래머스 LV2 프로세스 (0) | 2023.07.11 |
프로그래머스 LV2 주차 요금 계산 (0) | 2023.07.11 |