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
주석을 원래 세로로 맞췄었는데 보통 그렇게 안한다고 한다... 충격
그래서 앞으로는 띄어쓰기 두 번으로 주석을 맞추려고 한다. 아직은 익숙하지 않아서 뭔가 더 보기 불편해보이는데 나중에 적응되면 괜찮아 지겠지..!
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[Python]백준_10773 : 제로 (0) | 2023.06.02 |
---|---|
[C]백준_17608 : 막대기 (0) | 2023.06.01 |
[Python]프로그래머스_Lv1 : 제일 작은 수 제거하기 (0) | 2023.05.31 |
[Python]프로그래머스_Lv1 : 평균 구하기 (0) | 2023.05.31 |
[Python]프로그래머스_Lv1 : x만큼 간격이 있는 n개의 숫자 (0) | 2023.05.18 |