본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/ALGORITHM

[내일배움캠프] 데일리 루틴(iOS_3회차) - 없는 숫자 더하기

 

이미지를 클릭하면 코딩테스트 페이지로 이동합니다

 

 

내 풀이

import Foundation

func solution(_ numbers:[Int]) -> Int {
    let result = 45 - numbers.reduce(0) { $0 + $1 }
    
    return result
}

 

먼저 배열 numbers의 합을 구하기 위해 위해 reduce 함수를 사용하여 배열의 모든 요소를 합쳐 하나의 값으로 만든다. 초기값은 0이며, 클로저를 통해 배열의 각 요소를 더한다. 그 후, 배열 numbers에 포함되지 않은 숫자들의 합을 구하기 위해 0부터 9까지의 숫자의 총 합인 45에서 이전에 구한 배열의 합을 빼준다. 이렇게 하면 배열에 포함되지 않은 숫자들의 합을 알 수 있다. 

 

코드의 동작을 정리해보면, 

 

- solution 함수는 정수 배열 numbers를 매개변수로 받음

- 배열 numbers의 모든 요소를 합산하기 위해 reduce 함수를 사용

    reduce 함수는 배열의 각 요소에 대해 제공된 클로저를 적용하여 값을 줄여나가는 과정을 수행

- 초기값으로 0을 설정하고, 클로저 { $0 + $1 }를 사용하여 배열의 각 요소 더하기

- 배열 numbers의 모든 요소를 더한 합을 구한 후, 이 값을 45에서 빼기

    45는 0부터 9까지의 숫자의 총 합

- 결과 반환

 

 

 

reduce란?

- 컬렉션(배열, 딕셔너리 등)의 각 요소에 대해 클로저를 실행하여 단일 값을 생성하는 고차 함수

- 초기값과 클로저를 인자로 받음

 

예시

let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0) { $0 + $1 } // 초기값 0부터 시작하여 각 요소를 더함
print(sum) // 출력: 15

 

 

 

고차함수란?

    고차 함수의 사용할 경우 코드를 더 간결하고 읽기 쉽게 만들어줌

    함수형 프로그래밍의 핵심 개념 중 하나

 

두 가지 조건 중 적어도 하나를 만족하는 함수

  1. 다른 함수를 인자로 받는 함수
  2. 함수를 결과로 반환하는 함수

즉, 고차 함수는 함수를 값으로 다루며, 다른 함수들을 조작하거나 생성하는 함수

 

고차 함수의 예

map, filter, reduce

위 고차함수들은 다른 함수(클로저)를 인자로 받아 컬렉션의 요소를 변환, 필터링, 축소하는 기능을 제공

 

 

 

 

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31