from itertools import combinations
def solution(numbers):
answer = []
comb = list(combinations(numbers, 2))
for c in comb:
answer.append(sum(c))
answer = sorted(list(set(answer)))
return answer
combinations(조합)
을 이용한 방법이다.comb
배열에 넣는다.comb
배열을 돌면서, 각 원소를 더해준 후 중복을 제거한다.from itertools import combinations
def solution(numbers):
answer = []
comb = list(combinations(numbers, 2))
for c in comb:
sum_c = sum(c)
if sum_c not in answer:
answer.append(sum_c)
return sorted(answer)
combinations(조합)
을 이용한 방법이다.comb
배열에 넣는다.comb
배열을 돌면서, 각 원소를 더하고 answer
배열 안에 그 값이 없다면 넣는다.[방법1] : 각 원소를 더하여 배열에 넣고 중복을 제거한다.
[방법2] : 각 원소를 더하여 중복된 값이 없으면 배열에 넣는다.
⇨ 테스트 케이스마다 효율성 정도가 다르기 때문에, 두 방법 모두 괜찮은 것 같다.
from itertools import permutations
permuations
: 순열 (순서가 있음)
from itertools import permutations
a = [1,2,3]
permute = permutations(a,2)
print(list(permute))
<output>
[(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)]
from itertools import combinations
combinations
: 조합 (순서가 없음)
from itertools import combinations
a = [1,2,3]
comb = combinations(a,2)
print(list(comb))
<output>
[(1,2),(1,3),(2,3)]