포스트

66. 홀수 vs 짝수


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import Foundation

func solution(_ num_list:[Int]) -> Int {
    
    var odd : Int = 0
    var even : Int = 0
    var answer : Int = 0
    
    for i in num_list.indices {
        if i % 2 == 0 {
            even += num_list[i]
        } else {
            odd += num_list[i]
        }
    }
    
    answer = even > odd ? even : odd
    
    
    return answer
}

홀수 짝수 인덱스에 다라 odd, even이라는 변수에 누적해서 더하게 하였고, 삼항연산자를 사용하여 리턴하였다.

filter를 사용해서 인덱스로 접근해 처리해보고 싶었는데 가능한지 모르겠다.

다른 코드를 보니 가능한거같다. 공부를 해봐야겠다.

다른코드

1
2
3
4
5
6
7
8
import Foundation

func solution(_ num_list:[Int]) -> Int {
    let even = num_list.enumerated().filter { $0.0 % 2 == 0 }.map { $0.1 }
    let odd = num_list.enumerated().filter { $0.0 % 2 == 1 }.map { $0.1 }

    return even.reduce(0, +) >= odd.reduce(0, +) ? even.reduce(0, +) : odd.reduce(0, +)
}

해당 코드를 보니 enumerated를 통해 Dictionary배열로 바꾸었다 (key, value)의 형태

그리고 $0.0 / $0.1 의 개념을 찾아보니 $0.0이 key/ $0.1이 value 였다.

즉 key는 인덱스를 의미하니 그걸 이용하여 필터를 사용하였고, map에는 0.1 즉 value값 실제로 배열에 있었던 값을 적용하여 배열을 만들었다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.