728x90
def solution(numbers):
answer = set()
for i in range(0, len(numbers)-1):
for j in range(i+1, len(numbers)):
answer.add(numbers[i]+numbers[j])
return sorted(list(answer))
=> sorted(answer)도 가능
<내 풀이 분석>
1. i는 [0~N-2], j는 [i+1~N-1]를 반복함. (중복되지 않도록 j는 i+1부터 반복) # 버블정렬 느낌?
2. 서로 다른 인덱스를 더한 값을 집합에 넣음. 중복방지
3. 집합을 리스트로 만들고 정렬해서 반환
from itertools import combinations
def solution(numbers):
answer = set()
com = combinations(numbers, 2)
for c in com:
answer.add(c[0]+c[1])
return sorted(answer)
콤비네이션을 이용한 방법도 있다!
728x90
'알고리즘 > programmers[1]' 카테고리의 다른 글
[프로그래머스] 최소직사각형: python3 (0) | 2022.01.21 |
---|---|
[프로그래머스] 2016년: python3 (0) | 2022.01.21 |
[프로그래머스] 예산: python3 (0) | 2022.01.21 |
[프로그래머스] 3진법 뒤집기: python3 (0) | 2022.01.21 |
[프로그래머스] 약수의 합: python3 (0) | 2022.01.21 |