coding test - python/Programmers

Programmers / 두 개 뽑아서 더하기 / Python

sillon 2022. 3. 29. 19:09
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 두 개 뽑아서 더하기

문제 사이트: 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))❌

728x90
반응형