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 라이센스를 따릅니다.