문제는 보기와 같았다. 결국 주어진 숫자 list에서 numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 list에 오름차순으로 담아야한다. (경우의 수에서 조합이랑 비슷하다). 다음과 같이 코드를 짜봤다:
import sys
def solution(numbers):
answer1 = []
for i in range(len(numbers)):
for j in range(i+1, len(numbers)):
answer1.append(numbers[i]+numbers[j])
answer = list(dict.fromkeys(answer1))
answer.sort()
return answer
우선 numbers라는 list의 길이만큼 range를 만든다. 그리고, j는 i보다 한 수 위의 인덱스부터 시작하게끔 range(i+1, len(numbers))로 지정해줬다. 그리고 answer1 list에 i에 있는 숫자와, j에 있는 숫자와 더해주고 answer1 list에 append해준다(numbers[i] + numbers[j])
dict.fromkeys()는 list 안에 있는 value들 중, 중복 되는 값을 하나로 통일시켜주는 function이다
따라서 answer는 answer1에서 dict.fromkeys()를 이용해 이끌어내고, answer.sort()를 이용해 오름차순으로 정리해준다.
'알고리즘 테스트 > 프로그래머스 문제풀이 및 해설' 카테고리의 다른 글
<프로그래머스 문제풀이: 2016년> Level1 - 파이썬 (0) | 2020.10.22 |
---|---|
<프로그래머스 문제풀이: K번째 수> Level 1 - 파이썬 (0) | 2020.10.21 |
<프로그래머스 문제풀이: 모의고사> Level 1 - 파이썬 (0) | 2020.10.21 |
<프로그래머스 문제풀이: 완주하지 못한 선수> Level 1 - 파이썬 (0) | 2020.10.21 |
<프로그래머스 문제풀이: 크레인 인형뽑기 게임> Level 1 - 파이썬 (0) | 2020.10.18 |