*문제 출처는 프로그래머스에 있습니다.
문제 제목: 두 개 뽑아서 더하기
문제 사이트: 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
https://blog.naver.com/hunii123/222322728605
※ 알아야 할 것
- 다른 풀이에서는 라이브러리를 이용하여 문제를 풀었다.
- sorted함수는 리스트 함수일 때 list를 작성하지 않으면 오류가 난다.
예시) sorted(list(set(answer))) ⭕ / sorted(set(answer))❌
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / 자릿수 더하기 / Python (0) | 2022.03.29 |
---|---|
Programmers / 짝수와 홀수 / Python (0) | 2022.03.29 |
Programmers / 모의고사 / Python (0) | 2022.03.29 |
Programmers / 핸드폰 번호 가리기 / Python (0) | 2022.03.29 |
Programmers / 직사각형 별찍기 / Python (0) | 2022.03.29 |