본문 바로가기

알고리즘

[Algorithm-swift] 두 개 뽑아서 더하기

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