알고리즘 풀이/프로그래머스

[Level1] 두 개 뽑아서 더하기

mhko411 2021. 1. 21. 14:29
728x90

문제

여러 개의 정수가 포함된 리스트가 입력으로 들어온다.

이 때 리스트의 수 중 두 개를 뽑아 만들 수 있는 모든 합을 오름차순으로 정렬하여 출력해보자.

여기서 합이 같은 값은 중복을 제거하여 정렬한다.

 

입력

[2,1,3,4,1]

 

출력

[2,3,4,5,6,7]


1. 이중 for문을 통해 두 개의 수를 뽑는 조합을 생성한다.

2. 뽑은 두 개의 수를 더하여 answer에 추가한다.

3. set을 통해 answer에 중복된 수를 제거하고 list로 다시 변환한다.

4. 최종적으로 answer을 오름차순으로 정렬하여 반환한다.

 

def solution(numbers):
    answer = []
    
    for y in range(len(numbers)):
        for x in range(y+1,len(numbers)):
            answer.append(numbers[y]+numbers[x])
    answer=list(set(answer))
    answer.sort()
    return answer