프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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을 넣어 두 풀이 소요시간을 비교해보았다.
아래처럼 두 풀이의 소요시간은 차이가 났다.
(자바에서 스트림을 사용한 것과 비슷한 것 같다. 스트림을 사용하면 코드는 간결해지지만 소요시간은 늘어나기 때문이다.)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 최댓값 만들기(1) Kotlin (0) | 2023.10.25 |
---|---|
[프로그래머스] 삼각 달팽이 JAVA (1) | 2023.10.24 |
[프로그래머스] 17683. 방금 그곡 JAVA (0) | 2023.08.24 |
[프로그래머스] 12973.짝지어 제거하기 JAVA (0) | 2023.05.19 |
[프로그래머스] 92335. k진수에서 소수 개수 구하기 JAVA (4) | 2023.01.26 |
댓글