개발나라 스용공주

[프로그래머스] Lv.0 C++ 홀짝에 따라 다른 값 반환하기 / for문 2씩 증가하는 방법 본문

C++/코딩테스트

[프로그래머스] Lv.0 C++ 홀짝에 따라 다른 값 반환하기 / for문 2씩 증가하는 방법

스용공주 2024. 3. 22. 06:54
728x90
728x90

< 문제 설명 >
양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.

 

n result
7 16
10 220

 

 

처음엔 아래와 같이 작성하였다. (오답)

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;

    if (n % 2 == 1) // 홀수일 경우
    {
        for (int i = 1; i <= n; i + 2)
        {
            answer += i;
        }
    }
    else // 짝수일 경우
    {
        for (int i = 2; i <= n; i + 2)
        {
            int m = i * i;
            answer += m;
        }
    }
    return answer;
}

 

 

문제는 for문에 작성한 2개씩 수를 증가시키기 위해 i + 2로 증가를 표현해준 부분이였다.

아래 코드와 같이 1 += 2 로 수정하니 오류가 사라진 것을 확인할 수 있다.

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;

    if (n % 2 == 1) // 홀수일 경우
    {
        for (int i = 1; i <= n; i += 2)
        {
            answer += i;
        }
    }
    else // 짝수일 경우
    {
        for (int i = 2; i <= n; i += 2)
        {
            int m = i * i;
            answer += m;
        }
    }
    return answer;
}

 

 

728x90
728x90
Comments