[프로그래머스_Lv1] 두 개 뽑아서 더하기

SOO·2023년 5월 30일
0

CodingTest

목록 보기
7/11

문제 설명

나의 풀이

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!!!!!!!!

profile
데이터 분석으로 세상을 읽어보쟈 빠샤

0개의 댓글