Lv. 0 - 짝수의 합 풀이과정
문제 설명
정수 n
이 주어질 때, n
이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
제한사항
- -0 ≤
n
의 원소 ≤ 1000
입출력 예
n | result |
---|---|
10 | 30 |
4 | 6 |
입출력 예 설명
3-1) 입출력 예 설명 #1
n
이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.
3-2) 입출력 예 설명 #2
n
이 4이므로 2 + 4 = 6을 return 합니다.
프로그래머스에서 제공한 코드
처음 프로그래머스에서 작성된 코드는 아래와 같다.
function solution(n) {
var answer = 0;
return answer;
}
문제 풀이
const solution = n => {
let answer = 0;
for(let i = 0; i <= n; i++) {
if(i % 2 === 0) answer += i;
}
return answer;
}
함수 선언
- 화살표 함수를 사용하여
n
매개변수를 받는다.
풀이
- 변수
answer
생성 후 배열을 생성한다. -
let answer = 0
을 선언하여 합계를 저장할 변수answer
를 0으로 초기화한다. - 반복문을 사용하여 0부터 매개변수로 전달받은 값까지 반복문을 실행한다.
-
if(i % 2 === 0)
조건문을 통해i
가 짝수인 경우answer
에i
를 더한다. -
return aswer
를 통해 최종적으로 모든 짝수의 합인answer
를 반환한다.
결과 반환
-
n
에 10를 대입할 경우 10번동안 반복문이 실행되어, 2,4,6,8,10 을 반환하여 각각 더해준다. -
n
에 4를 대입할 경우 4번동안 반복문이 실행되어, 2,4 을 반환하여 각각 더해준다.
실행
-
n
이 10일 경우 2 + 4 + 6 + 8 + 10 = 30을 반환한다. -
4
이 10일 경우 2 + 4 = 6을 반환한다.
다른 사람의 풀이 참고
나와 같이 반복문을 사용하여 푼 내용이 보여 좋았으나, 수열 공식(?)을 이용한 풀이과정이 있는데..직접 값을 넣어서 테스트해보니 신기하게 잘 작동된다.
수학을 잘 할수록 문제 풀이에 도움이 많이 되는 것 같다. (수학 공부를 지금이라도..?)</br>
짝수를 구하는 방법은 수열 공식을 이용하면 정말 편리한 것 같다!
// [51명] 수열 공식을 통한 풀이 과정
function solution(n) {
var half = Math.floor(n/2);
return half*(half+1);
}
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges