본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/ALGORITHM

[내일배움캠프] 데일리 루틴(iOS_3회차) - x만큼 간격이 있는 n개의 숫자

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

 

내 풀이

func solution(_ x:Int, _ n:Int) -> [Int64] {
    return Array(1...n).map { Int64($0 * x) }
}

 

 

위 문제를 봤을 때 배열을 사용해 풀어야겠다는 생각이 먼저 들었다. x는 시작 숫자, n은 반복하는 횟수로 함수는 x부터 시작해 n번 반복하면서 각 반복에서 현재 숫서에 x를 곱한 값을 배열에 담아 반환하도록 했다. 

 

만약 solution(2, 5)를 호출하면, 

 

  1. 반복이 1회째일 때: 2 * 1 = 2
  2. 반복이 2회째일 때: 2 * 2 = 4
  3. 반복이 3회째일 때: 2 * 3 = 6
  4. 반복이 4회째일 때: 2 * 4 = 8
  5. 반복이 5회째일 때: 2 * 5 = 10

이므로 최종적으로 함수는 배열 [2, 4, 6, 8, 10]을 반환한다. Array(1...n)는 1부터 n까지의 숫자로 이루어진 배열을 생성하며, map 함수를 사용하여 각 숫자에 x를 곱한 값을 새로운 배열로 만들었다.

 

여기서 { Int64($0 * x) } 은 클로저(Closure)를 사용했다.

{ Int64($0 * x) }는 간단한 클로저로, $0은 클로저의 인자를 나타낸다. map 함수는 클로저를 배열의 각 요소에 적용하여 새로운 배열을 생성하는데, 이 클로저는 각 숫자에 x를 곱한 값을 Int64로 변환하여 반환한다.

 

클로저란? 자세한 정리는 노션으로

- 코드 블록으로, 함수나 메서드와 같이 독립적으로 이름을 가지지 않고도 실행 가능한 코드

(Swift에서 클로저는 중괄호 {}로 감싸져 있음)

 

 

 

 

 

 

 

 

 

 

 

 

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