[프로그래머스 level1]-두 개 뽑아서 더하기

김도윤·2022년 4월 14일
0

2022/04/14

문제설명

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.

제한사항

  • numbers의 길이는 2 이상 100 이하입니다.
  • numbers의 모든 수는 0 이상 100 이하입니다.

내 코드(성공)

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에서는 같은요소가 존재할 수 없다.

문제원본

0개의 댓글