문제: 짝수의 합
문제와 답
문제 설명
정수 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
내 머리 속 생각
제가 이 문제를 보며 생각한 것을 리스트화 해봤습니다.
- 문제 정리
- 입력 값, n이 있다면 1 ~ n까지의 모든 짝수를 더하는 프로그램을 작성하는 것이다.
- 문제 해결을 위한 생각
- 짝수를 구하기 위해 `값 % 2 == 0`를 활용해야겠다.
- 짝수 값을 담을 변수, `value`를 생성해야겠다.
- 반복문을 통해 `value = n - i`로 두고 증감 변수 `i`가 n과 같아질 때까지 반복문의 조건을 셋팅해야 겠다.
- 반복문 내부에서 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 증가시키겠다는 헛 짓거리를 했습니다...하하
변명은 하지 않겠습니다.. 아직은 알린이네요ㅠ (알고리즘 어린이)
성장하는 알린이가 되겠습니다!
'PS&알고리즘' 카테고리의 다른 글
[BoJ][JAVA] 1406 - 에디터, 스택과 배열로 풀어보기 (0) | 2025.01.09 |
---|---|
[BOJ][JAVA] 어두운 굴다리 17266 (0) | 2024.07.30 |
[BoJ][C/C++] 11718 그대로 출력하기 (0) | 2024.06.09 |