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

문제: 짝수의 합

문제와 답

문제 설명

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

제한 사항

0 ≤ n ≤ 1000

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int n) {
    int answer = 0;
    
    scanf("%d", &n); // input
    
    for (int i = 0; i <= n; i++ ) {
        int value = n - i; // create variable for storage of 1 ~ n
        if(value % 2 == 0) 
            answer += value; // 그리고 짝수라면 더함
    }
    
    return answer;
}

Vv

내 머리 속 생각

제가 이 문제를 보며 생각한 것을 리스트화 해봤습니다.

  1. 문제 정리
    • 입력 값, n이 있다면 1 ~ n까지의 모든 짝수를 더하는 프로그램을 작성하는 것이다.
  2. 문제 해결을 위한 생각
    1. 짝수를 구하기 위해 `값 % 2 == 0`를 활용해야겠다.
    2. 짝수 값을 담을 변수, `value`를 생성해야겠다.
    3. 반복문을 통해 `value = n - i`로 두고 증감 변수 `i`가 n과 같아질 때까지 반복문의 조건을 셋팅해야 겠다.
    4. 반복문 내부에서 value가 짝수라면 짝수 값을 모두 더할 변수, `answer`에 더해야겠다.

문제를 풀며 했던 실수...

또한, 제가 이 문제를 풀며 실수했던 것을 이야기 해보려 합니다...

int value = 0;

for (int i = 0; value > 0; i++) {
	value = n - i; // 이 부분...
    if(value % 2 == 0) answer += value;
}

 

부끄럽네요... 

무슨 sum함수를 초기화해놓는 것처럼 value를 0으로 초기화 시켜놓고 `value > 0`면 증감 변수 i를 1 증가시키겠다는 헛 짓거리를 했습니다...하하

 

변명은 하지 않겠습니다.. 아직은 알린이네요ㅠ (알고리즘 어린이)

 

성장하는 알린이가 되겠습니다!