programmers.co.kr/learn/courses/30/lessons/12941
내 풀이
def solution(A,B):
answer = 0
A.sort()
B.sort(reverse = True)
for i, v in enumerate(A):
answer += v * B[i]
return answer
최솟값을 만드는거라
큰값*작은값 + 큰값*작은값 ....... = answer 이다.
문제를 잘... 생각해보자.
다른사람 풀이
def getMinSum(A,B):
return sum(a*b for a, b in zip(sorted(A), sorted(B, reverse = True)))
zip 함수는 동일한 개수로 이루어진 자료형을 묶어주는 역할을 한다.
A = [1, 4, 2] 이고 B = [5, 4, 4] 이면 sorted 하여서 A = [1, 2, 4] 이고 B = [5, 4, 4] 가 되고
A와 B를 zip 함수를 사용하게되면 [(1, 5), (2, 4), (4, 4)] 가 되어 for a, b 를 통하여 sum을 해주었다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Level1] 같은 숫자는 싫어 (0) | 2021.04.27 |
---|---|
[Level1] 폰켓몬 (0) | 2021.04.12 |
[Level1] 나누어 떨어지는 숫자 배열 (0) | 2021.04.07 |
[Level1] 체육복 (0) | 2021.04.06 |
[Level1] 두 개 뽑아서 더하기 (0) | 2021.04.06 |