내일배움캠프

[TIL]코딩 테스트 최댓값 만들기 (1)

2023. 4. 5. 13:56

문제 설명

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

제한사항

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

 

내가 푼 코드

def solution(numbers):
    return max([a * b for a in numbers for b in numbers if a!=b])

max를 이용해 풀었는데 for 구문을 사용했더니 런타임 에러가 났다.

 

 

같은 팀원이 푼 코드 

def solution(numbers):
    answer = 0
    numbers.sort(reverse=True)
    answer = numbers[1]*numbers[0]
    return answer

- 팀원은 reverse를 사용해 역순으로 정렬한 다음 계산하는 방식으로 풀었다.

내 코드에 비해 코드가 훨씬 깔끔하고, 런타임 에러도 나지 않았다.