def solution(numbers):
answer=0
x=max(numbers)
numbers.remove(x)
y=max(numbers)
answer=x*y
return answer
반성 (Miss)
numbers.remove(x)는 입력받은 리스트 numbers 자체를 수정해 버린다max()를 찾기 위해 배열을 한 번 훑고, remove()를 하기 위해 또 훑고, 다시 max()를 찾기 위해 훑는다. 배열이 아주 길어지면 비효율적일 수 있다[10, 10, 5]라면, remove(10)을 해도 하나가 남아서 10 * 10이 잘 나오겠지만, 의도치 않게 원본 데이터가 바뀌는 것은 지양하는 것이 좋다def solution(numbers):
# numbers를 오름차순으로 정렬
numbers.sort()
# 가장 큰 두 수(마지막 두 원소)를 곱함
return numbers[-1] * numbers[-2]
한 줄 팁 (Tip):