본문 바로가기
Coding Test/Python

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

by giem 2022. 8. 27.
반응형

 

프로그래머스 두 개 뽑아서 더하기를 Python으로 풀어보겠다.


문제

문제는 쉽게 이해할 수 있다.


구현

파이썬의 itertool에서 combination을 써서 쉽게 구현 가능하다.

numbers에서 두 수를 뽑은 리스트를 만들고

리스트에서 sum을 한 후 중복되는 수를 없애기 위해 set으로 바꿔준다.

마지막으로 sort를 해서 답을 리턴한다.


코드
from itertools import combinations

def solution(numbers):
    lst = list(combinations(numbers,2))
    answer = set([sum(x) for x in lst])
    return sorted(answer)

위의 구현에 써져있는 설명대로 구현을 했다.

 

이 코드를 요약하면 아래와 같다.

from itertools import combinations
def solution(numbers):
    return sorted(set(sum(i) for i in list(combinations(numbers, 2))))

가독성은 살짝 떨어지지만 같은 로직이다.


다른 풀이
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)))

combinations를 안 쓴 풀이이다.

숫자를 뽑으면서 더해서 바로 answer배열에 추가하고

set으로 중복을 없앤 뒤

정렬을 한 코드이다.

 

아주 깔끔하게 작성된 걸 확인할 수 있다.

반응형

댓글