728x90
문제 설명
문제
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
제한 사항
- numbers의 길이는 2 이상 100 이하입니다.
- numbers의 모든 수는 0 이상 100 이하입니다.
입출력 예
numbers | result |
[2, 1, 3, 4, 1] | [2, 3, 4, 5, 6, 7] |
[5, 0, 2, 7] | [2, 5, 7, 9, 12] |
해결
import Foundation
func solution(_ numbers:[Int]) -> [Int] {
var arr: Set<Int> = []
for i in 0..<numbers.count {
for j in (i + 1)..<numbers.count {
answer.insert(numbers[i] + numbers[j])
}
}
return Array(arr).sorted { $0 < $1 }
}
해결 방안 설명
입력된 배열에서 두 개의 수를 더한 값을 저장하는 배열을 만들 때, Set을 사용해서 중복되는 값이 없도록 합니다.
그리고 반복문을 사용해 입력된 배열에서 가장 첫번째부터 마지막 숫자까지 자기 자신을 제외한 배열 내의 숫자를 더합니다. 그리고 이를 새로운 배열에 넣습니다. (위에서 Set으로 만들었으므로 중복된 값이 추가되지 않습니다.)
마지막으로 더한 값이 있는 배열을 오름차순으로 정렬합니다.
'Algorithm' 카테고리의 다른 글
프로그래머스 - 나머지가 1이 되는 수 찾기 (0) | 2022.04.15 |
---|---|
프로그래머스 - 약수의 개수와 덧셈 (0) | 2022.04.14 |
BST(이진 탐색 트리) - 구현 (0) | 2022.04.01 |
BST (이진탐색트리) - 개념 (0) | 2022.04.01 |
알고리즘에 많이 사용되는 Swift Basic (0) | 2022.04.01 |