728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/68644
#include <string>
#include <algorithm>
#include <vector>
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++){
int t = numbers[i] + numbers[j];
answer.push_back(t);
}
}
sort(answer.begin(), answer.end());
answer.erase(unique(answer.begin(), answer.end()), answer.end());
return answer;
}
새로 알게된 것
중복 문자를 제거하기 위해 unique와 erase 함수를 사용할 수 있다. unique의 return값은 유일한 원소들이 끝나고 첫번째 쓰레기 원소가 나오는 곳의 위치이다. 예를 들면, 112335가 존재할 때 unique를 통해서 123513이 나오는데 이때 빨간표시한 자리를 리턴한다. 따라서 erase를 통해 123513 파란부분을 제거할 수 있다.
v.erase(unique(v.begin(), v.end()),v.end());
728x90
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 개인정보 수집 유효기간 (C++) (0) | 2023.02.20 |
---|---|
[Programmers] 로또의 최고 순위와 최저 순위 (C++) (0) | 2022.07.06 |
[Programmers] 거리두기 확인하기 (C++) (0) | 2022.04.29 |
[Programmers] 숫자 문자열과 영단어 (C++) (0) | 2022.02.18 |
[Programmers] 신규 아이디 추천 (C++) (0) | 2022.02.18 |