알고리즘/해결

[프로그래머스] 없는 숫자 더하기

언클린 2021. 12. 8. 21:46
728x90

1. 문제

0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

2. 나의 답

func solution(_ numbers:[Int]) -> Int {
    let sumValue = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
    var inputValue = 0
    numbers.forEach { value in
        inputValue += value
    }
    return sumValue - inputValue
}

3. 다른 방법

func solution(_ numbers:[Int]) -> Int {
    let sumValue = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
    let inputValue = numbers.reduce(0) { $0 + $1 }
    return sumValue - inputValue
}

마무리

우선 난 문제를 읽고 제한되어 있는 숫자 배열이라 없는 수를 찾아 계산하는 것보다 총 수에서 가지고 있는 수를 빼는 방식으로 문제에 접근해 보았다. 처음에는 forEach 문을 사용하여 계산을 하였는데 reduce 기능이 있다는 것을 깨닫고 다시 한번 풀어보았다.

728x90

'알고리즘 > 해결' 카테고리의 다른 글

LeetCode August2.Design HashSet  (0) 2020.08.03
LeetCode August1.Detect Capital  (0) 2020.08.03
LeetCode1528. Shuffle String  (0) 2020.07.30
LeetCode1480. Running Sum of 1d Array  (0) 2020.07.30
LeetCode1470. Shuffle the Array  (0) 2020.07.28