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

 

코딩테스트 연습 - 두 개 뽑아서 더하기

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

programmers.co.kr


풀이 과정

2중 for문으로 list를 순회하면서 리스트의 요소를 2개 더한 값들을 answer에 저장해주자. 만약 a라는 배열이 3개의 원소를 가지고 있다면

 

a[0] + a[1], a[0] + a[2], a[1] + a[2]를 다 answer에 더해주는 방식이다.

 

파이썬에서 set 자료형은 중복을 허용하지 않으므로 answer를 set 자료형으로 바꿔줘서 중복을 없앤 후, 다시 list 자료형으로 바꿔주고 sort() 메써드를 활용해서 오름차순으로 정렬하고 출력해주면 된다.

 

 


소스 코드

def solution(numbers):
    answer = []

    for number in range(len(numbers)):
        for number2 in range(number+1, len(numbers)):
            answer.append(numbers[number] + numbers[number2])

    answer = set(answer)
    answer = list(answer)
    answer.sort()
    return answer

+ Recent posts