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)
반응형
'Programming Language > Python3.6' 카테고리의 다른 글
[Python 파이썬] 피보나치 수열 구현하기 (공간 최적화) (0) | 2024.01.26 |
---|---|
[알고리즘] [Divide and Conquer 분할 정복] 1부터 N까지 더하는 문제를 분할 정복으로 구현하기 (0) | 2024.01.26 |
모두의 알고리즘 with 파이썬 (컴퓨팅 사고를 위한 기초 알고리즘) - 문제 18 (0) | 2022.08.05 |
모두의 알고리즘 with 파이썬 (컴퓨팅 사고를 위한 기초 알고리즘) - 문제 17 (0) | 2022.08.05 |
모두의 알고리즘 with 파이썬 (컴퓨팅 사고를 위한 기초 알고리즘) - 문제 16 (0) | 2022.08.05 |