https://programmers.co.kr/learn/courses/30/lessons/68644
코딩테스트 연습 - 두 개 뽑아서 더하기
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한
programmers.co.kr
소스 코드
import Foundation
func solution(_ numbers:[Int]) -> [Int] {
// var arr = [Int](repeating: 0, count: 102)
var sum : [Int] = []
print(numbers.count)
for i in 0..<numbers.count{
for j in 0..<numbers.count{
if i == j{
continue
}
sum.append(numbers[i]+numbers[j])
}
}
sum.sort()
print(sum)
for i in (1...sum.count-1).reversed(){
if sum[i]==sum[i-1]{
sum.remove(at: i)
}
}
return sum
}
설명
사실.. 설명이라고 할 것도 없는 문제이다.. 블로그에 올릴까도 많이 고민했지만 첫 알고리즘 문제라는 것에 의의를 두고 업로드하려고 한다..ㅎ
덧셈 결과를 전부 다 append하는 것이 아닌
if !result.contains(num) { // result배열에 num이 없다면 result배열에 추가
result.append(num)
}
이렇게 contains()사용하면 더욱 쉽고 간단하게 푸는 방법도 있는 것을 알게 되어 다음에 문제를 푼다면 꼭 적용해봐야겠다.
'알고리즘' 카테고리의 다른 글
[백준] 7576번: 토마토 (0) | 2022.02.02 |
---|---|
[백준] 2178번: 미로 탐색 (0) | 2022.01.31 |
[백준] 1260번: DFS와 BFS (0) | 2022.01.30 |
[백준] 1012번:유기농 배추 (0) | 2022.01.30 |
[백준] 2606번: 바이러스 (0) | 2022.01.27 |