출처:프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/86051
난이도:Lv.1
문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다.
numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 <= numbers 의 길이 <=9
- 0 <= numbers의 모든 원소 <= 9
- numbers의 모든 원소는 서로 다릅니다.
입출력 예
numbers | result |
[1,2,3,4,6,7,8,0] | 14 |
[5,8,4,0,6,7,9] | 6 |
import Foundation
func solution(_ numbers:[Int]) -> Int {
//음.... 어떤 방법이 있을까? 고민하다가 집합에 대해 깨달아버렸다..
//집합을 이용해서 한 번 풀어볼까?
//1.numbers를 집합으로 지정 (set)
//2.새로운 집합 num[0...9]을 생성
//3.num과 numbers의 대칭차(gap)를 구한다
//4.gap배열의 합(reduce)을 실행
let set = Set(numbers)
let num: Set = [1,2,3,4,5,6,7,8,9,0]
let gap = set.symmetricDifference(num)
let sum = gap.reduce(0) { (result, next) in
return result + next
}
return sum
}
'Programmers' 카테고리의 다른 글
[iOS Swift] Lv.1 가운데 글자 가져오기 (0) | 2024.05.18 |
---|---|
[iOS Swift] Lv.1 제일 작은 수 제거하기 (0) | 2024.05.18 |
[iOS Swift] Lv.1 핸드폰 번호 가리기 (0) | 2024.05.15 |
[iOS Swift] Lv.1 음양 더하기 (0) | 2024.05.14 |
[iOS Swift] Lv.1 나누어 떨어지는 숫자 (0) | 2024.05.13 |