반응형
프로그래머스 두 개 뽑아서 더하기를 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으로 중복을 없앤 뒤
정렬을 한 코드이다.
아주 깔끔하게 작성된 걸 확인할 수 있다.
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] [1차] 비밀지도 Python Code (0) | 2022.08.27 |
---|---|
[프로그래머스] 부족한 금액 계산하기 Python Code (0) | 2022.08.27 |
[프로그래머스] 3진법 뒤집기 Python Code (1) | 2022.08.27 |
[프로그래머스] 최소 직사각형 Python Code (0) | 2022.08.27 |
[프로그래머스] 나머지가 1이 되는 수 찾기 Python Code (0) | 2022.08.23 |
댓글