알고리즘/Programmers

[Swift_Programmes] 없는 숫자 더하기

YEN_ 2023. 11. 23. 12:13

 

프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=swift

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


풀이    

import Foundation

func solution(_ numbers:[Int]) -> Int {
    let standard = [1,2,3,4,5,6,7,8,9]
    var arr: [Int] = []
    for i in standard {
        if numbers.contains(i) == false { arr.append(i) }
    }
    return arr.reduce(0, +)
}

 

중요 개념    

  • 확실한 대조군이 있는 상태에서의 배열 비교

다른 사람의 풀이    

import Foundation

func solution(_ numbers:[Int]) -> Int {
    return (0...9).filter { !numbers.contains($0) }.reduce(0, +)
}
  • 고차함수 filter 사용
import Foundation

func solution(_ numbers:[Int]) -> Int {
    return 45 - numbers.reduce(0, +)
}
  • 1부터 9까지의 합에서 number의 합을 빼서 풀이

 

map과 reduce조차 아직 익숙해지지 않아서 filter는 생각도 못했다

그래도 내가 현재 아는 범위 안에서 접근은 제대로 한 것 같아 다행이다

좀 더 간단하게 풀 수 있는 방법을 많이 검색해보자❗❗❗❗❗❗