프로그래머스에 있는 월간 코드 챌린지 시즌1에 있는 두개 뽑아서 더하기 문제 입니다.
두개의 수를 뽑아야 하기때문에 첫번째 값하고 두번째 값을 비교하는 형식으로 for문을 돌렸습니다.
각각 두개의 값을 뽑은다음에 합계를 배열에 저장하고 출력할경우 다음과 같이 나옵니다.
func solution(_ numbers:[Int]) -> [Int] {
var result : [Int] = []
for i in 0..<numbers.count {
for j in i+1..<numbers.count {
result.append(numbers[i]+numbers[j])
}
}
return result
}
해당값에서 오름차순을 주게되면
해당값에서 중복값만 제거하면 정답과 동일하게 나옵니다.
1. 배열를 이용한 방법
func solution(_ numbers:[Int]) -> [Int] {
var result : [Int] = []
for i in 0..<numbers.count {
for j in i+1..<numbers.count {
if !result.contains(numbers[i]+numbers[j]) {
result.append(numbers[i]+numbers[j])
}
}
}
return result.sorted()
}
print(solution([2,1,3,4,1]))
2. Set를 이용한 방법
import Foundation
func solution(_ numbers:[Int]) -> [Int] {
var result = Set<Int>()
for i in 0..<numbers.count {
for j in i+1..<numbers.count {
result.insert(numbers[i]+numbers[j])
}
}
return result.sorted()
}
print(solution([2,1,3,4,1]))
문제 : https://programmers.co.kr/learn/courses/30/lessons/68644?language=swift
'Algorithm' 카테고리의 다른 글
Algorithm(Swift) - 부족한 금액 계산하기 (0) | 2021.09.12 |
---|---|
Algorithm(Swift) - H-Index (0) | 2021.08.28 |
Algorithm(Swift) - 가장 큰 수 (0) | 2021.08.27 |
Algorithm(Swift) - 모의고사 (0) | 2021.08.27 |
Algorithm(Swift) - K번째수 (0) | 2021.07.18 |