본문 바로가기
C++/프로그래머스 문제풀이

23-02-02

by GameStudy 2023. 2. 2.

Level2 - 자연수 뒤집어 배열로 만들기

  뭔가 오해하고 있었음. 다시 보니까 쉬운 문제였음..

<hide/>

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

#define DIGIT_COUNT (12)

void recursion(long long _iN, vector<int>& _vAnswer)
{
    if (_iN <= 0)
    {
        return;
    }
    
    _vAnswer.push_back(_iN % 10);
    recursion(_iN / 10, _vAnswer);    
}

vector<int> solution(long long n) {
    vector<int> answer;
    answer.reserve(DIGIT_COUNT);
    
    if (0 == n)
    {
        answer.push_back(n);
        return answer;
    }
    
    recursion(n, answer);
    
    // sort(answer.begin(), answer.end(), [](int a, int b) { return a > b; });
    
    return answer;
}

 

Level2 - 부족한 금액 계산하기

  등차수열의 합공식과 등비수열의 합공식 정도는 외워도 좋을듯..?

<hide/>

using namespace std;

long long solution(int price, int money, int count)
{
    long long answer = -1;
    
    long long a1 = price;
    long long d = price;
    long long n = count;
    long long an = a1 + (count - 1) * d;
    long long llTotalPrice = (n * (a1 + an)) / 2;
    
    answer = llTotalPrice - money;
    
    if (0 < answer)
    {
        return answer;
    }
    else
    {
        return 0;
    }
}

 

Level2 - 예산

  그리드 알고리듬인듯해서, 정렬하고 시작함.

<hide/>

#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> d, int budget) {
    int answer = 0;
    
    sort(d.begin(), d.end());
    
    size_t uSize = d.size();
    for (size_t i = 0; i < uSize; ++i)
    {
        budget -= d[i];
        if (budget < 0)
        {
            break;
        }
        ++answer;
    }
    
    return answer;
}

'C++ > 프로그래머스 문제풀이' 카테고리의 다른 글

23-01-20  (0) 2023.01.20
23-01-19  (0) 2023.01.19
23-01-18  (0) 2023.01.18
23-01-17  (0) 2023.01.17
23-01-16  (0) 2023.01.16

댓글