Programmers / 두 개 뽑아서 더하기 / Python
*문제 출처는 프로그래머스에 있습니다.
문제 제목: 두 개 뽑아서 더하기
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/68644
나의 풀이
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)))
나의 풀이가 다른 사람들도 많이 제출한 풀이라서 처음엔 놀랐다...
중복을 제거하기 위해서 set함수를 사용하였고 리스트를 sorted함수로 정리해주었다.
for문에서 오류가 많이 났었는데, 범위 정할 때 i + 1로 시작하지 않고, 1로 지정해주어서 오류가 잦았다...
나중에 문제를 다시 읽으면서 틀린걸 깨달았다.
다른 풀이
from itertools import combinations
def solution(numbers):
return sorted(set(sum(i) for i in list(combinations(numbers, 2))))
from itertools import combinations 설명
https://docs.python.org/ko/3/library/itertools.html#itertools.combinations
itertools — 효율적인 루핑을 위한 이터레이터를 만드는 함수 — Python 3.10.4 문서
docs.python.org
https://blog.naver.com/hunii123/222322728605
[라이브러리] itertools : combinations (조합)
#itertools #pythoncombination #python조합 #파이썬조합 #파이썬itertools ※ 이것은 취업을 위한 코딩테...
blog.naver.com
※ 알아야 할 것
- 다른 풀이에서는 라이브러리를 이용하여 문제를 풀었다.
- sorted함수는 리스트 함수일 때 list를 작성하지 않으면 오류가 난다.
예시) sorted(list(set(answer))) ⭕ / sorted(set(answer))❌