프로그래머스 월간 코드 챌린지 시즌 1
두 개 뽑아서 더하기
문제 정리
- 주어진 배열에서 서로 다른 인덱스의 두 수를 뽑는다.
- 더해서 만들 수 있는 모든 수를 오름차순으로 정렬하여 return 하라
문제 풀이
- 이중 for문을 돌면서 i와 j가 같지 않은 경우 set에 넣는다. (중복 제거를 위해 set에 넣음)
- set크기의 배열을 생성
- iterator를 통해 set의 원소들을 모두 뽑아 배열에 넣는다.
- Arrays.sort()를 통해 오름차순으로 정렬한다.
프로그래머스 두 개 뽑아서 더하기 java
두 개 뽑아서 더하기 cpp
가능한 조합을 모두 vector에 넣고
sotring을 우선 진행한 다음에
unique 함수를 통해 연속된 수 중 중복된 수를 지웠습니다
이 외에도 bool visited를 통해 check할 수도 있고 set을 이용해 풀이할 수도 있습니다
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> ans;
for (int i = 0; i < numbers.size(); i++) {
for (int j = i + 1; j < numbers.size(); j++) {
ans.push_back(numbers[i] + numbers[j]);
}
}
sort(ans.begin(), ans.end());
ans.erase(unique(ans.begin(), ans.end()), ans.end());
return ans;
}