티스토리 뷰

1. 문제

출처 : 프로그래머스

2. 소스코드

def solution(numbers):

    answer = set()

    for i in range(len(numbers)):

        for j in range(i+1,len(numbers)):

            answer.add(numbers[i] + numbers[j])

    answer = list(answer)

    answer.sort()

    return answer

 

3. 고찰

1) 알고리즘

인덱스를 이용해서 두 수를 뽑았다.

더한 수를 answer에 넣었는데, answer는 set을 사용하였다.

set은 list와 다르게 중복 원소는 한 개만 저장하는 특징이 있다. 하지만 sort를 할 수 없어서 answer를 다시 list로 변경한 후 오름차순으로 정렬하였다.

 

2) 시간복잡도

이중 for문을 사용하기 때문에 O(N^2)

sort함수는 O(N logN)

최종적으로 이 코드의 시간복잡도는 O(N^2 + N logN) = O(N^2)이다.

'프로그래밍 > Python' 카테고리의 다른 글

Quick Sort 파이썬 구현  (0) 2020.11.02
프로그래머스_조이스틱  (0) 2020.11.02
프로그래머스_전화번호 목록  (0) 2020.10.30
프로그래머스_큰 수 만들기  (0) 2020.10.30
프로그래머스_카펫  (0) 2020.10.30
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함