본문 바로가기

Algorithm

Algorithm(Swift) - 두 개 뽑아서 더하기

프로그래머스에 있는 월간 코드 챌린지 시즌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 

 

코딩테스트 연습 - 두 개 뽑아서 더하기

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한

programmers.co.kr

 

'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