최솟값 만들기 - Python

2023. 10. 14. 07:09공부/📝 프로그래머스

1. 풀이 코드

def solution(A, B):
    return sum([a*b for a, b in zip(sorted(A), sorted(B, reverse=True))])


# Test Cases
print(solution([1, 4, 2], [5, 4, 4]))
print(solution([1, 2], [3, 4]))

  간단하게 풀었습니다.

 

더보기

1) 틀린 코드

import numpy as np

def solution(A, B):
    answer = float('inf')

    A_list = []
    B_list = []
    for i in range(len(A)):
        A_list.append(A[i - len(A):] + A[:i])
    for i in range(len(B)):    
        B_list.append(B[i - len(B):] + B[:i])

    A_array = np.array(A_list)
    B_array = np.array(B_list)
    print(A_array)
    print(B_array)
    
    for item in np.dot(A_array, B_array).tolist():
        for check in item:
            if answer > check:
                answer = check
    return answer

# Test Cases
print(solution([1, 4, 2], [5, 4, 4]))
print(solution([1, 2], [3, 4]))

  내적을 통해서 모든 경우의 수를 계산하는 과정을 해보고 싶었는데 이 코드는 틀렸다고 나오네요... 생각을 다시 해야겠습니다.


 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

'공부 > 📝 프로그래머스' 카테고리의 다른 글