def solution(numbers): s = [] for i in range(len(numbers)): for j in range(1, len(numbers)-i): s.append(numbers[i]+numbers[i+j]) answer = sorted(list(set(s))) return answer
최대한 복잡하지 않게 풀고 싶었는데 반복문을 사용하지 않고는 안될것 같았다.
리스트의 중복 제거는 set()
을 사용하면 간단히 할 수 있다.
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)))
가장 많은 사람이 작성한 풀이도 나랑 비슷하게 풀었다.
다만 나는 s라는 변수를 하나 더 선언했다....!
변수는 최대한 줄여보자!
from itertools import combinations def solution(numbers): return sorted(set(sum(i) for i in list(combinations(numbers, 2))))
역시 combinations()
을 사용하면 한줄에 가능한 문제였다.
combinations()
를 불러올 줄 모르는 나, 여직 공부해야 할 게 많다...!
기억하자 itertools
!!!!!!!!