티스토리 뷰

728x90

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

 

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

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

programmers.co.kr

 

  • 해설 :

숫자들로 이루어진 배열이 주어질 때, 각 요소들을 두 개씩 뽑아서 더한 모든 결괏값을 오름차순으로 정렬해서 출력하는 문제이다.

 

 

 

 

  • 풀이 :

for 문을 이중으로 사용하여 요소를 두 개 뽑아서 더한 결괏값을 배열에 넣고 중복을 제거하기 위해 set으로 변환시키고 이를 오름차순으로 정렬하여 출력하면 된다. itertools의 permutation을 사용해도 똑같은 결과가 나올 것 같다.

 

 

 

 

1
2
3
4
5
6
def solution(numbers):
    answer = []
    for i in range(len(numbers)):
        for j in range(i+1,len(numbers),1):
            answer.append(numbers[i]+numbers[j])
    return sorted(list(set(answer)))
cs
320x100
댓글
© 2022 WonSeok, All rights reserved