티스토리 뷰
문제 설명
정수 리스트 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 |
최근에 올라온 글