본문 바로가기

Python

[Python/level 0] 최댓값 만들기 (1) - 120847, sort(), sort(reverse=True)

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

 

code - 1차

def solution(numbers):
    firstMaxNumber = max(numbers)
    indexMaxNumber = numbers.index(firstMaxNumber)
    numbers.pop(indexMaxNumber)
    secondMaxNumber = max(numbers)
    return(firstMaxNumber * secondMaxNumber)
  • max(), index() → pop
    • firstMaxNumber: max 함수를 이용해 numbers에서 가장 큰 값을 찾습니다.
    • index 함수를 이용해 최대값의 index를 찾은 뒤, pop하여 numbers에서 최댓값을 삭제합니다.
    • secondMaxNumber: 이후 다시 max 함수를 이용해 numbers에서 새로운 최댓값을 찾습니다.
  • firstMaxNumber * secondMaxNumber
    • 위에서 찾은 두 원소를 곱해 최댓값을 return합니다.

 

code - 2차

def solution(numbers):
    numbers.sort()
    return (numbers[-1]*numbers[-2])
  • sort()
    • numbers를 오름차순으로 정렬합니다.
  • numbers[-1]*numbers[-2]
    • 인덱스를 맨 뒤에서부터 카운트하면 -1로 시작합니다. 이 개념을 참고하여 가장 끝에 정렬된(가장 큰) 두 원소를 곱합니다.
def solution(numbers):
    numbers.sort(reverse=True)
    return (numbers[0]*numbers[1])
  • sort(reverse=True)
    • numbers를 내림차순으로 정렬합니다.
  • numbers[0]*numbers[1]
    • 맨 처음과 다음 인덱스, 즉 가장 큰 두 원소를 곱합니다.

 

반응형