티스토리 뷰

코딩테스트

Lv.0 swift 홀수 vs 짝수

알롱도담쓰 2024. 3. 21. 22:16

문제 설명

정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.

제한 조건

5 ≤ num_list의 길이 ≤ 50
-9 ≤ num_list의 원소 ≤ 9

내 답안

import Foundation

func solution(_ num_list:[Int]) -> Int {
    let evenSum = num_list.enumerated().filter { $0.offset % 2 == 1 }.map { $0.element }.reduce(0, +)
    let oddSum = num_list.enumerated().filter { $0.offset % 2 == 0 }.map { $0.element }.reduce(0, +)
    
    return max(evenSum, oddSum)
}

접근 방법

 

다른 풀이

import Foundation

func solution(_ num_list:[Int]) -> Int {
    let odd = stride(from: 0, to: num_list.count, by: 2).reduce(0) { $0 + num_list[$1] }
    let even = stride(from: 1, to: num_list.count, by: 2).reduce(0) { $0 + num_list[$1] }
    return even > odd ? even : odd
}

stride 를 쓴 게 좋아보여서... stride가 먼저 생각이 안 난단 말야

 

알게 된 것

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

Lv.0 swift 0 떼기  (1) 2024.03.22
Lv.0 swift 할 일 목록  (0) 2024.03.21
Lv.0 swift 순서 바꾸기  (0) 2024.03.21
Lv.0 swift n개 간격의 원소들  (0) 2024.03.20
Lv.0 swift 수 조작하기  (0) 2024.03.20
최근에 올라온 글