코딩테스트 & 문제 풀이

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

Hicecream 2023. 6. 1. 00:26

2022년 8월 9일에 작성됨

 

https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 분석

배열 numbers의 요소들 중 서로 다른 두 개의 수를 더한다.

중복인 수는 없앤 다음 오름차순으로 정렬하여 리턴한다.

 

 

소스 코드 (⭕)

def solution(numbers):
    
    answer = []  # 빈 리스트 만들기
    
    for i in range(len(numbers)):		
        for j in range(i + 1, len(numbers)):
            answer.append(numbers[i] + numbers[j])  # 두 수 더한 값 answer에 추가하기
    
    answer = list(set(answer))  # 중복인 수 없애기
    answer.sort()  # 오름차순으로 정렬
    
    return answer

 

코드 분석

1. 이중 for 문을 이용하여 리스트에서 서로 다른 두 수인 numbers[i]와 numbers[j]를 뽑는다.

2. 두 수를 더한 합을 빈 리스트 answer에 추가한다.

3. answer에 있는 중복된 값을 제거한다.

4. 마지막으로 sort() 함수를 사용하여 오름차순으로 정렬 후 리턴해준다.

 


✍️<set 함수~ 리스트 내 중복 원소 제거>

:: set()는 중복된 값을 허용하지 않는다. 따라서 list를 set으로 변경하면 중복된 값이 제거되며, 그 뒤에 다시 list로 변환하면 중복된 값이 제거된 리스트가 된다.

 

list(set(리스트 변수))

>>> my_list = [10, 22, 19, 22, 1, 10, 4]
>>> result = list(set(my_list))
>>> print(result)
[1, 4, 10, 19, 22]

 

✍️<sort 함수~ 리스트의 요소를 정렬하기>

:: sort()는 리스트의 요소을 작은 순서대로 정렬한다(오름차순).


변수.sort() 또는 sort(reverse=False) : 리스트의 값을 작은 순서대로 정렬(오름차순)
변수.sort(reverse=True) : 리스트의 값을 큰 순서대로 정렬(내림차순)

>>> a = [10, 20, 30, 15, 20, 40]
>>> a.sort()
>>> a
[10, 15, 20, 20, 30, 40]

 


 

end

주석을 원래 세로로 맞췄었는데 보통 그렇게 안한다고 한다... 충격

그래서 앞으로는 띄어쓰기 두 번으로 주석을 맞추려고 한다. 아직은 익숙하지 않아서 뭔가 더 보기 불편해보이는데 나중에 적응되면 괜찮아 지겠지..!