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;
}
댓글