알고리즘/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는 생각도 못했다
그래도 내가 현재 아는 범위 안에서 접근은 제대로 한 것 같아 다행이다
좀 더 간단하게 풀 수 있는 방법을 많이 검색해보자❗❗❗❗❗❗