favicon Jay Lee DevLog

📚 목차
#include <string>
#include <vector>

using namespace std;

int CalcTotal(int num, int nValue, int nCount, int nSum)
{
    if (nCount == num)
        return nSum;
    else
    {
        nCount++;
        nSum += nValue;
        return CalcTotal(num, nValue + 1, nCount, nSum);
    }
}

vector<int> solution(int num, int total) {
    vector<int> answer;
    int nAnswer, nFindValue;
    int i = -100;
    while(true)
    {
        nFindValue = CalcTotal(num, i, 0, 0);
        nAnswer = i;
        if (total == nFindValue)
        {
            for (int i = nAnswer; i < nAnswer + num; i++)
                answer.push_back(i);

            break;
        } 
        i++;
    }

    return answer;
}

이번 문제는 그냥

딱 보고 재귀함수 써서 넘겨받은 숫자만큼

돌고 확인해보면 되지 않을까 싶어서

재귀함수 연습도 해볼겸 써서 해봤다.

 

여기서 제대로 해결하지 못한 부분은

-값부터 시작해서 값을 만들수 있는 부분인데,

이 부분도 역시 while 써서 그냥 대강 때려맞춰서 풀어버렸다.

이런 형태로 풀지 않으려면 알고리즘을 좀 더 잘 짜야할텐데..

에자일 형태의 개발을 오래하다 보니 짧은 시간 안에

결과를 뽑아내야 해서 생각할 시간 없이 짜다보니

이런 습관이 든 것 같다.

 

풀고 나서 다른사람들 문제풀이 보니깐

아직 한참 먼 것 같더라..

개발은 머리가 좋아야 하는게 맞는 것 같다.

 

문제 풀이는

그냥 입력받은 값부터 +1씩 입력받은 숫자만큼

재귀함수 타서 원하는 값과 일치하면

빠져나오게끔 해뒀다.

+ Recent posts

/ /

Contact

📧 dlwjdwls60@naver.com


블로그에 내용이 있으면 해당 글을 보여주며, 없으면 내용이 복사된 채로 ChatGPT로 연결됩니다.