포스트

24. 원소들의 곱과 합

나의 코드

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

func solution(_ num_list:[Int]) -> Int {
    
    var sum : Int = 0
    var summul : Int = 0
    var mul : Int = 0

    var answer : Int = 0
    
    sum = num_list.reduce(0,+)
    summul = sum * sum
    mul = num_list.reduce(1,*)
    
    answer = mul < summul ? 1 : 0
    
    return answer
}

이렇게 생각한 이유.

합을 고차함수인 reduce를 써서 한번 해보았다.

굳이 반복문을 하지않기에 간략하게 표현이 가능했다. 다만 곱을 표현할때 합처럼 ()안에 0으로 해보니 곱이 계속 0이 나와서 확인해보니 괄호안의 첫번째 parameter가 0이어서 계속 0을 곱하기에 답이 계속 0이 나왔던것이었다.

에러를 해결하고나서 삼항연산자를 씀으로써 if문 또한 간략하게 표현했다.

이렇게 해보면서 reduce는 조금씩 감이 오는것같다.

다음에는 reduce의 다른 표현으로 해봐야겠다.

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