프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=swift
풀이
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는 생각도 못했다
그래도 내가 현재 아는 범위 안에서 접근은 제대로 한 것 같아 다행이다
좀 더 간단하게 풀 수 있는 방법을 많이 검색해보자❗❗❗❗❗❗
'알고리즘 > Programmers' 카테고리의 다른 글
[Swift_Programmes] 수박수박수박수박수박수? (1) | 2023.11.27 |
---|---|
[Swift_Programmes] 가운데 글자 가져오기 (1) | 2023.11.27 |
[Swift_Programmes] 핸드폰 번호 가리기 (0) | 2023.11.23 |
[Swift_Programmes] 음양 더하기 (0) | 2023.11.23 |
[Swift_Programmes] 나누어 떨어지는 숫자 배열 (0) | 2023.11.22 |