본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 짝수의 합 Kotlin

by Bhinney 2023. 10. 23.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


 📍 문제

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.

제한사항
0 < n≤ 1000

📍 예시

n result
10 30
4 6

 


📎 풀이

  • 처음 푼 풀이는 반복문을 이용한 풀이였다.
  • 리턴 시킬 변수를 선언 및 초기화 해주고, 반복문을 돌며 2로 나누어 떨어지는 짝수이면 더해주었다.
class 짝수의합 {
    fun solution(n: Int): Int {
        var ans = 0

        for (i : Int in 1 .. n) {
            if (i % 2 == 0) {
                ans += i
            }
        }

        return ans
    }
}

  • 다른 사람의 풀이를 보고, 내장 함수를 사용할 수 있다는 것을 알았다.
  • 필터를 사용하여, 1부터 n까지 수 중에서 2로 나누어 떨어지는 짝수를 더해주었다.
class 짝수의합 {
    fun solution(n: Int): Int = (1 .. n).filter{it % 2 == 0}.sum()
}

📎 풀이 비교

class 짝수의합 {
    fun solution1(n: Int): Int = (1 .. n).filter{it % 2 == 0}.sum()
    fun solution2(n: Int): Int {
        var ans = 0

        for (i : Int in 1 .. n) {
            if (i % 2 == 0) {
                ans += i
            }
        }

        return ans
    }
}

n 값에 10을 넣어 두 풀이 소요시간을 비교해보았다.

아래처럼 두 풀이의 소요시간은 차이가 났다.

(자바에서 스트림을 사용한 것과 비슷한 것 같다. 스트림을 사용하면 코드는 간결해지지만 소요시간은 늘어나기 때문이다.)


댓글