(프로그래머스 with python) 두개 뽑아서 더하기
LEVEL1 두개 뽑아서 더하기
https://programmers.co.kr/learn/courses/30/lessons/68644
combinations()를 사용해서 풀면 크게 어렵지 않게 풀 수 있는 문제였다. 근데 계속 4,5번 테스트케이스가 통과되지 못했다
찾아보니까 set(list(a))는 정렬된 리스트가 나옴을 보장하지 않는다고 한다. set이 해시셋이기 때문에 그렇다고 한다
from itertools import combinations
def solution(numbers):
answer = []
result = list(set(combinations(numbers, 2)))
[answer.append(sum(i)) for i in result]
answer.sort()
return list(set(answer))
solution([5,0,2,7])
그럼 sort를 set과 동시에 해주면 끝날 일이였다.. ^^
from itertools import combinations
def solution(numbers):
answer = []
result = list(set(combinations(numbers, 2)))
[answer.append(sum(i)) for i in result]
return sorted(list(set(answer)))
solution([5,0,2,7])
combinations()없이 푸는 풀이방법이다. 중첩 for문을 사용해서 풀면 된다
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)))