def solution(numbers):
result = []
# 두 수를 뽑아 더하기
for i in range(len(numbers)):
for j in range(i+1, len(numbers)):
sum_num = numbers[i]+numbers[j]
# 중복을 제외하고 result에 담기
if sum_num not in result:
result.append(sum_num)
# 오름차순으로 정렬 후 리턴
return sorted(result)
리스트에서 중복되지 않게 두 개씩 카드를 뽑는 것과 같은 알고리즘이어서 비교적 간단하게 문제를 풀었다.
✍ <list>.sort()와 sorted(<list>)의 차이
<list>.sort()
- 원본 리스트를 정렬하고, 리턴값은 None
- 원본 리스트를 정렬함 (파괴적 함수)
- 정렬된 새로운 리스트를 만들지 않기 때문에 sorted(<list>)보다 빠름
sorted(<list>)
- 원본 리스트에 영향을 주지 않고 정렬된 새로운 함수를 반환함 (비파괴적 함수)
- 모든 iterable한 객체에 사용 가능함(리스트, 튜플, 딕셔너리, 문자열)
참고자료