Lv. 0, 89%
문제
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤ numbers의 원소 ≤ 10,000
- 2 ≤ numbers의 길이 ≤ 100
입출력 예
입출력 예 #1
- 두 수의 곱중 최댓값은 4 * 5 = 20 입니다.
입출력 예 #2
- 두 수의 곱중 최댓값은 31 * 24 = 744 입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120847
def solution(numbers):
answer = 0
for i in numbers:
for j in numbers:
if i != j:
if i*j > answer:
answer = (i*j)
return answer
테스트 4가 궁금한데 왜 안 보이는 것이냐..
뭘까요? 알려주세요.
방법을 바꿔야 하나 싶어
정렬을 활용한 방법:
def solution(numbers):
sorted_numbers = sorted(numbers, reverse=True)
return sorted_numbers[0]*sorted_numbers[1]
저기서 굳이 sorted_numbers를 안 만들고
바로 return sorted(numbers)[-1]*sorted(numbers)[-2] 로 하는 방법도 있다
혹은 numbers.sort() 로도 가능!
'코딩테스트' 카테고리의 다른 글
코딩테스트 입문_점의 위치 구하기 (0) | 2023.04.07 |
---|---|
코딩테스트 입문_dict.fromkeys() swapcase() title() 교집합 (0) | 2023.04.04 |
코딩테스트 입문_최빈값 구하기_sorted() (0) | 2023.03.30 |
코딩테스트 입문_분수의 덧셈_fractions 모듈 (2) | 2023.03.24 |
코딩테스트 카카오_숫자 문자열과 영단어_isdecimal replace (0) | 2023.03.24 |