정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i+1,len(numbers)): if numbers[i]+numbers[j] in answer: continue else: answer.append(numbers[i]+numbers[j]) return sorted(answer)
def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i+1, len(numbers)): answer.append(numbers[i] + numbers[j]) return sorted(list(set(answer)))
내 코드는 numbers[i]+numbers[j]를 진행한뒤, 만약 answer에 같은값이 있다면 무시하고 넘어간 후 리스트에 모든 값이 넣어졌을때 sorted로 정렬하며 마무리한다.
다른 사람의 코드는 우선 리스트에 다 넣은 다음 set을 이용해 중복된 값을 지워 준 후 정렬한다. set은 그저 집합생성에만 사용되는 함수인줄 알았는데 중복이 안된다는 사실을 처음 알게되었다.
set : 파이썬 set에서는 같은요소가 존재할 수 없다.