본문 바로가기

Programming Language/Python3.6

[Python 파이썬] 두 리스트 원소들 중에 두 원소를 곱한 값이 최대가 되는 경우 구하기

def max_result(left_lists, right_lists): # 왼쪽 리스트, 오른쪽 리스트 존재
    max_result = left_lists[0] * right_lists[0] # 초기에는 임시로 리스트의 첫 번째 원소로 지정
    
    # 가능한 모든 조합을 시도해보는 for 문
    for left in left_lists: # 왼쪽 리스트
        for right in right_lists: # 오른쪽 리스트
            # 현재까지의 최댓값 값과 현재 원소들의 곱을 비교해서 더 큰 값을 최댓값 변수에 담아줌
            max_result = max(max_result, left * right) # 최댓값 조합

    # 찾은 최댓값을 리턴          
    return max_result
    
print(max_result([1, 6, 5], [4, 2, 3]))
print(max_result([1, -9, 3, 4], [2, 8, 3, 1]))
print(max_result([-1, -7, 3], [-4, 3, 6]))

 

시간 복잡도 O(mn)

 

반응형