Developer/Programmers

[Programmers] LV 0. 최댓값 만들기(1) (Python/파이썬)

moolife 2023. 2. 8.

▶ 문제 설명

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


 제한 사항

  • 0 ≤ numbers의 원소 ≤ 10,000
  • 2 ≤ numbers의 길이 ≤ 100

 입출력 예

numbers result
[1, 2, 3, 4, 5] 20
[0, 31, 24, 10, 1, 9] 744

입출력 예 설명

입출력 예 #1

  • 두 수의 곱중 최댓값은 4 * 5 = 20 입니다.

입출력 예 #1

  • 두 수의 곱중 최댓값은 31 * 24 = 744 입니다.

▶ Code

def solution(numbers):
    answer = 0
    answerlist = sorted(numbers, reverse=True)
    answer = answerlist[0] * answerlist[1]
    return answer

▶ Point

sort()와 sorted() 모두 기본 정렬은 오름차순으로 정렬되며, 'reverse = True' 사용 시 내림차순으로 정렬이 됩니다.

두 함수의 핵심은, sort() 함수는 배열 자체를 정렬하므로 전역변수를 클래스 내부에서 정렬해서 저장할 때 유용하고, sorted() 함수는 배열을 복사해서 정렬하여 새로운 변수로 뽑아낼 수 있으므로 저장된 배열 변수를 가져다가 연산을 진행한다던가 할 때 유용하게 사용할 수 있다.

 

'answerlist = sorted(numbers, reverse=True'로 numbers를 내림 차순으로 하여 새로운 변수 answerlist에 저장한다. 이후 가장 큰 'answerlist[0] * answerlist[1]' 를 answer로 출력한다.

댓글