최대 곱 구하기(파이썬)

조회수 1191회
  1. 정수인 n 을 입력 (3 <= n <=10000)
  2. n의 값 반큼 정수 리스트(a)를 입력 ex) n=4 , 10 4 7 -7 을 입력
  3. 이 값들 중 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 답변

  • 제가 너무 간단하게 생각하는 건지는 모르겠지만...

    1. biggest, secondBiggest, thirdBiggest 변수를 새로 만듭니다. 기본값으로 None 주면 되겠죠.
    2. 리스트 a의 각 원소에 대해서 for를 3번 돌면서 검사를 하여, 1에서 만든 변수들을 변경합니다.
      • 처음 돌 때는 제일큰수 찾기: 지금 검사중인 원소가 양수이고 biggest보다 클 때 → biggest를 그 원소로 변경
      • 그 다음에는 두번째로큰수 찾기: 지금 검사중인 원소가 양수이고 secondBiggest보다 크고 biggest보다 작을 때 → secondBiggest를 그 원소로 변경
      • 마지막으로는 세번째로큰수 찾기: 지금 검사중인 원소가 양수이고 thirdBiggest보다 크고 secondBiggest보다 작을 때 → thirdBiggest를 그 원소로 변경
    3. print(biggest * secondBiggest * thirdBiggest)

    힌트가 되었으면 좋겠네요. 한번 시도해 보세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)