재미있게 해커 크랭크 대회에서 문제를 시도하고 있었는데,이 질문이 왔습니다. 은 여기,이에 대한 itertools을 사용하는 코드입니다 :목록에서 두 요소의 최대 곱을 찾는 방법은 무엇입니까?
import itertools
l = []
for _ in range(int(input())):
l.append(int(input()))
max = l[0] * l[len(l)-1]
for a,b in itertools.combinations(l,2):
if max < (a*b):
max = (a*b)
print(max)
이 아닌 다른 효율적인 방법들이 있습니까? 내가 액세스 할 수없는 몇 가지 테스트 케이스에서 시간 초과 오류가 발생하므로 (작은 대회로)
사전 계산 'a * b'최대 값이 아닌 경우 몇 가지 지침을 저장합니다. –
@ Jean-FrançoisFabre가 당신을 명확하게 이해하지 못했습니다. 제발 좀 더 자세히 설명해 주시겠습니까? – Maverick
두 개의 가장 큰 개별 요소를 찾아서 곱하면 안됩니까? (또한 음수를 허용하는 경우 두 개의 가장 낮은 음수 요소) – khelwood