본문 바로가기

Problem Solving/Programmers

<Level 1> 두 개 뽑아서 더하기 with 파이썬

문제 설명

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


제한사항

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

 

def solution(numbers):
    answer = []
    answer_set = set()
    for i in range(len(numbers) - 1):
        for j in range(i+1, len(numbers)):
            answer_set.add(numbers[i] + numbers[j])
    answer = list(answer_set)
    answer.sort()
    return answer

 

 - 첫 번째 for문은 리스트의 처음부터 마지막 바로 직전의 원소까지 돌고 두 번째 for 문은 i+1 부터 끝까지 돌게한다. 이렇게 하면 리스트의 각 원소 둘씩 더할 수 있다.

 

 - 이들을 set에 담아서 중복을 제거하였고, list로 만든 후 정렬시켜주었다.

 

 

 

 

참고

https://programmers.co.kr/learn/courses/30/lessons/68644