중요한 점
1. result 배열을 어떻게 오름차순으로 만들 것이냐 -> numbers를 정렬한 후 더하기, result를 정렬하여 반환하기, 자동정렬이 되는 컨테이너를 사용
2. result 배열에서 어떻게 중복을 제거할 것이냐 -> 원소 입력시 이미 존재하는 값의 원소인지 구분, 중복을 허용하지 않는 컨테이너를 사용
원소 간의 중복을 허용하지 않고 자동으로 원소가 오름차순 정렬되는 set 컨테이너를 사용하여 풀면 된다는 것을 알 수 있다.
#include <string>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> numbers) {
set<int> s;
for(int i = 0; i<numbers.size(); i++){
for(int j = i+1; j<numbers.size(); j++){
s.insert(numbers[j]+numbers[i]);
}
}
vector<int> answer(s.begin(), s.end());
return answer;
}
기록
: set을 vector로 복사하기 위해서 answer 벡터를 나중에 생성하였는데 assign 함수를 사용하면 생성 이후에 원소를 복사하는 것이 가능하다. 기존 데이터를 삭제하고 원소를 할당하기 때문.
'STUDY > 코딩테스트 연습(PS)' 카테고리의 다른 글
프로그래머스/가장 큰 수(정렬)/C++ (0) | 2021.04.07 |
---|---|
프로그래머스/더 맵게(힙 heap)/C++ (0) | 2021.04.06 |
프로그래머스/주식가격(스택,큐)/C++ (0) | 2021.04.02 |
프로그래머스/네트워크(DFS,BFS)/C++ (0) | 2021.03.31 |
프로그래머스/기능개발(스택,큐)/C++ (0) | 2021.03.30 |