프로그래머스
[프로그래머스/c++] Lv1 두 개 뽑아서 더하기
돈 많은 백수가 되고싶다
2024. 9. 14. 16:36
https://school.programmers.co.kr/learn/courses/30/lessons/68644
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
기존에 풀었던 문제를 vector erase, unique를 사용하지 않고 set을 이용해서 푼 것이다. 확실히 코드가 간단해진다.
set은 중복된 값을 같이 저장하지 않기 때문에 따로 중복된 값을 제거해줄 필요가 없다. 물론 원한다면 중복된 값도 같이 저장할 수 있다. 헤더에 unordered_set 을 추가해주면 된다.
#include <string>
#include <vector>
#include <set>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer;
set<int> s;
for (int i = 0; i < numbers.size(); i++) {
for (int j = i + 1; j < numbers.size(); j++) {
int cnt = 0;
cnt = numbers[i] + numbers[j];
s.insert(cnt);
}
}
answer.assign(s.begin(), s.end());
return answer;
}
https://hello-world-cpp.tistory.com/29
[c++/algorithm] std::set,std::map
set, map의 차이는 set은 key값만 저장하고 map은 key값과 value를 저장한다. set과 map 둘 다 중복을 허용하지 않는다. 또한, 둘 다 컨테이너 내부에서 오름차순으로 정렬 된다. std::set 컨테이너 template
hello-world-cpp.tistory.com