반응형
https://programmers.co.kr/learn/courses/30/lessons/68644
재귀로 두 합을 구하여 중복을 제거해주었습니다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
void calSum(vector<int>& numbers, int idx, int sum, int cnt, vector<int>& temp) {
if(cnt == 2) {
temp.push_back(sum);
return;
} else if(idx == numbers.size()) return;
calSum(numbers, idx+1, sum, cnt, temp);
calSum(numbers, idx+1, sum+numbers[idx], cnt+1, temp);
}
vector<int> solution(vector<int> numbers) {
vector<int> answer, temp;
calSum(numbers, 0, 0, 0, temp);
sort(temp.begin(), temp.end());
int prev = -1;
for(int i=0; i<temp.size(); i++) {
if(temp[i] != prev) {
answer.push_back(temp[i]);
prev = temp[i];
}
}
return answer;
}
반응형
'Algorithm' 카테고리의 다른 글
프로그래머스 : 2 x n 타일링 (0) | 2021.11.13 |
---|---|
프로그래머스 : 타겟 넘버 (0) | 2021.11.13 |
프로그래머스 : 순위 (0) | 2021.11.13 |
프로그래머스 : 정수 삼각형 (0) | 2021.11.13 |
프로그래머스 : 여행경로 (0) | 2021.11.13 |