반응형
이번에 풀어 볼 문제는
리스트에서 서로 다른 인덱스를 가진 두 수를 뽑아 더해서 만들 수 있는 모든 경우의 수를 정렬하는 문제입니다 !
어떻게 해결하나?
- 인덱스가 다른 두 수를 뽑아서 더한다
- 중복을 제거하고, 정렬하기
① 인덱스가 다른 두 수를 뽑기
def solution(numbers): # numbers라는 배열을 인자로 받았을 때
answer = [] # 두 수를 더한 값을 넣을 배열 (중복된 숫자가 포함될 수 있음)
for i in range(len(numbers)):
for j in range(i, len(numbers)):
if i != j: # 인덱스가 다른 경우에만
answer.append(numbers[i] + numbers[j])
② 중복을 제거하고 정렬
n = [] # 더한 수 중에서 중복된 수는 넣지 않을 리스트
for i in answer:
if i not in n:
n.append(i)
# 파이썬 내장함수
n.sort()
파이썬 내장함수 sort() 관련 글은 여기에서 확인하실 수 있습니다!
전체코드
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(i, len(numbers)):
if i != j:
answer.append(numbers[i] + numbers[j])
n = []
for i in answer:
if i not in n:
n.append(i)
n.sort()
return n
반응형
'Python > 코딩테스트' 카테고리의 다른 글
[Python] 프로그래머스 - 문자열 내림차순으로 배치하기 (0) | 2020.12.19 |
---|---|
[Python] 프로그래머스 - 수박수박수박수? (0) | 2020.12.19 |
[Python] 프로그래머스 - 2016년 (0) | 2020.12.19 |
[Python] 프로그래머스 - K번째 수 (0) | 2020.12.19 |
[Python] 프로그래머스 - 완주하지 못한 선수 (0) | 2020.12.19 |