문제
문제 설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
제한사항
- numbers의 길이는 2 이상 100 이하입니다.
- numbers의 모든 수는 0 이상 100 이하입니다.
입력 & 출력
입출력 예
numbersresult
[2,1,3,4,1] | [2,3,4,5,6,7] |
[5,0,2,7] | [2,5,7,9,12] |
풀이 과정
1. 배열을 간단히 핸들링하는 문제입니다. 배열은 연속성이 있고 나열 가능하므로 for문을 이용해서 한 개씩 접근을 할 수 있고 첫 번째 수를 뽑은 상태에서 남은 숫자를 for문 처리하는 2중 for문의 구조로 해결합니다.
2. 두 번째 for문에서는 첫 번째 숫자를 포함하지 않게 구성하는 것만 조심하면서 문제에 표현된 대로 숫자들을 합하면서 answer배열을 만들어주면 되겠습니다.
3. 마지막 처리는 set() 함수와 sorted() 함수를 이용하여 중복을 제거하고 정렬을 진행하면 됩니다.
코드
def solution(numbers):
answer = []
for i, first_number in enumerate(numbers):
for second_number in numbers[i + 1:]:
answer.append(first_number + second_number)
answer = sorted(set(answer))
return answer
'Algorithm' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습스택/큐프린터 (0) | 2022.07.18 |
---|---|
[프로그래머스] 코딩테스트 연습2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임 (0) | 2022.07.17 |
[프로그래머스] 코딩테스트 연습2017 팁스타운 짝지어 제거하기 (0) | 2022.07.14 |
[프로그래머스] 코딩테스트 연습깊이/너비 우선 탐색(DFS/BFS)타겟 넘버 (0) | 2022.07.10 |
[프로그래머스] 코딩테스트 연습월간 코드 챌린지 시즌1내적 (0) | 2022.07.04 |