최대 곱 구하기(파이썬)
조회수 1191회
- 정수인 n 을 입력 (3 <= n <=10000)
- n의 값 반큼 정수 리스트(a)를 입력 ex) n=4 , 10 4 7 -7 을 입력
- 이 값들 중 2개 혹은 3개를 골라서 최대 곱을 만듦 ex) n= 5 , 10 -7 -8 0 6 >> input 560 >> output
정렬 사용 x , quick select 알고리즘 사용x
입력: n = 5, 1 2 6 7 0 출력: 84 전 퀵 셀렉을 사용하여 구했는데 퀵 셀렉을 사용하면 안된다고 합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
제가 너무 간단하게 생각하는 건지는 모르겠지만...
biggest
,secondBiggest
,thirdBiggest
변수를 새로 만듭니다. 기본값으로None
주면 되겠죠.- 리스트
a
의 각 원소에 대해서for
를 3번 돌면서 검사를 하여, 1에서 만든 변수들을 변경합니다.- 처음 돌 때는 제일큰수 찾기: 지금 검사중인 원소가 양수이고
biggest
보다 클 때 →biggest
를 그 원소로 변경 - 그 다음에는 두번째로큰수 찾기: 지금 검사중인 원소가 양수이고
secondBiggest
보다 크고biggest
보다 작을 때 →secondBiggest
를 그 원소로 변경 - 마지막으로는 세번째로큰수 찾기: 지금 검사중인 원소가 양수이고
thirdBiggest
보다 크고secondBiggest
보다 작을 때 →thirdBiggest
를 그 원소로 변경
- 처음 돌 때는 제일큰수 찾기: 지금 검사중인 원소가 양수이고
print(biggest * secondBiggest * thirdBiggest)
힌트가 되었으면 좋겠네요. 한번 시도해 보세요.
댓글 입력