티스토리 뷰

코딩테스트

Lv.0 swift n개 간격의 원소들

알롱도담쓰 2024. 3. 20. 18:04

문제 설명

정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

제한 조건

5 ≤ num_list의 길이 ≤ 20
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ 4

내 답안

func solution(_ num_list:[Int], _ n:Int) -> [Int] {
    var result: [Int] = []
    
    for i in stride(from: 0, to: num_list.count, by: n) {
        result.append(num_list[i])
    }
    
    return result
}

접근 방법

stride를 이용해서 접근 

이 함수를 처음 만났다..

다른 풀이

func solution(_ num_list:[Int], _ n:Int) -> [Int] {
    return stride(from: 0, to: num_list.count, by: n).map { num_list[$0] }
}

 

for 문을 안 써도 되는구나

 

func solution(_ num_list:[Int], _ n:Int) -> [Int] {
    return num_list.enumerated().filter { $0.offset % n == 0 }.map { $0.element }
}

 

알게 된 것

stride(from:to:by:)

 

정리해둠

https://codingbackup.tistory.com/316

 

swift stride(from:to:by:) / stride(from:through:by:)

swift stride(from:to:by:) func stride( // 시작값 from start: T, // 끝값 (미포함) to end: T, // 간격 by stride: T.Stride ) -> StrideTo where T : Strideable 시작값부터 시작하여 지정된 양만큼 증가하면서 / 감소하면서 끝값

codingbackup.tistory.com

 

'코딩테스트' 카테고리의 다른 글

Lv.0 swift 홀수 vs 짝수  (0) 2024.03.21
Lv.0 swift 순서 바꾸기  (0) 2024.03.21
Lv.0 swift 수 조작하기  (0) 2024.03.20
Lv.0 swift 문자열 앞의 n글자  (1) 2024.03.19
Lv.0 swift 제곱수 판별하기  (0) 2024.03.18
최근에 올라온 글