https://school.programmers.co.kr/learn/courses/30/lessons/68644
일단,, 또 재귀로 풀까? 했는데
레벨1이고
정답률도 높은 편이고
일단 개수가 100개라서 뭔가,, 그냥 이중포문으로 냅다 박아버려도 될 것 같았다
그건 맞았슴
근데 정렬하고, 중복을 제거해야 한다는 점에서
<algorithm>
에서 sort(), unique()를 써야겠다는건 알겠는데
어라
unique하고나서 계속 이상한거임
벡터의 중복 원소 제거하는 방법
vector<int> v; sort(v.begin(), v.end()); // 오름차순으로 정렬해준 다음에 v.erase(unique(v.begin(), v.end()), v.end()); // unique해주고 그 다음부터 벡터의 끝까지 원소를 제거
긍까
벡터를 정렬해놓고
unique() 하면 앞부분은 unique하게 되고
중복되는 부분이 뒤로 가는데 거기서부터 끝까지 중복된 원소들을 제거해주면 되는고임 ~
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer;
for (int i = 0 ;i < numbers.size() ; i++) {
for (int j = i + 1 ; j < numbers.size(); j++) {
answer.emplace_back(numbers[i] + numbers[j]);
}
}
sort(answer.begin(), answer.end());
answer.erase(unique(answer.begin(), answer.end()), answer.end());
return answer;
}