알고리즘 & 자료구조/프로그래머스
[C++/알고리즘] 프로그래머스 (두 개 뽑아서 더하기)
11월1일
2020. 10. 8. 01:18
programmers.co.kr/learn/courses/30/lessons/68644?language=cpp
코딩테스트 연습 - 두 개 뽑아서 더하기
programmers.co.kr
중복을 확인하기 귀찮아서 key의 중복이 안되며 자동으로 정렬해주는 map을 이용했다.
map의 key값에 더한값들을 다 저장해주고 (중복 없이) map의 key값들을 answer에 넣어주었다.
vector<int> solution(vector<int> numbers) {
vector<int> answer;
map<int, int> value;
int num_size = numbers.size();
for(int i=0;i< num_size-1;++i)
{
for(int j=i+1;j<num_size;++j)
{
value[numbers[i]+numbers[j]]+=1;
}
}
auto iter = value.begin();
auto iterend = value.end();
for(;iter != iterend; ++iter)
{
answer.push_back(iter->first);
}
return answer;
}