관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 짝수의 합 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 짝수의 합 (Kotlin)

참깨빵위에참깨빵_ 2022. 12. 23. 18:41
728x90
반응형
정수 n이 주어질 때, n 이하의 짝수를 모두 더한 값을 리턴하는 solution()을 작성하라

 

 

0 초과 1000 이하의 숫자 중 1부터 n까지의 범위에 속하는 모든 짝수들을 더해서 리턴하기만 하면 된다.

주먹구구식으로 푼 코드는 아래와 같다.

 

class Solution {
    fun solution(n: Int): Int {
        var a = 0
        (1..n).forEach {
            if (it % 2 == 0) {
                a += it
            }
        }
        return a
    }
}

 

이제 이것을 더 간단하게 만들어본다. 문제를 풀면서 자주 썼던 filter를 사용한다면 이렇게 작성할 수 있다.

 

class Solution {
    fun solution(n: Int) = (0..n).filter { it % 2 == 0 }.sum()
}

 

filter로 짝수를 검사하기 때문에 intRange를 만들 때 1부터 시작하게 하거나 if를 쓸 필요도 없다.

그리고 filter {}로 걸러낸 값들을 모두 더한 값을 리턴하는 sum()을 쓰기 때문에 프로퍼티를 굳이 선언하지 않아도 되고, 한 줄로 함수 본문을 작성할 수 있게 된다.

반응형
Comments