Level 0. 배열 만들기 2
전에 같이 알고리즘 스터디를 하던 형이 재귀로 조합을 만들어 냈던 게 생각나서 비슷한 방법을 써봤다.
현재 수에 0과 5를 하나씩 붙여나가는 방법이다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void rSolution(int l, int r, vector<int>& vec, int val)
{
if (l <= val && val <= r)
vec.emplace_back(val);
else if (r < val)
return;
int next_val = val * 10;
rSolution(l, r, vec, next_val);
rSolution(l, r, vec, next_val + 5);
}
vector<int> solution(int l, int r)
{
vector<int> answer;
rSolution(l, r, answer, 5);
sort(answer.begin(), answer.end());
return answer.empty() ? vector<int>{-1} : answer;
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 0. 두 수의 합 (1) | 2023.05.14 |
---|---|
Level 0. 배열 만들기 4 (0) | 2023.05.13 |
Level 2. [1차] 뉴스 클러스터링 (0) | 2023.05.11 |
Level 0. 커피 심부름 (0) | 2023.05.10 |
Level 0. 코드 처리하기 (0) | 2023.05.09 |