[프로그래머스] 두 개 뽑아서 더하기 (C++)

호이·2021년 11월 20일
post-thumbnail

요약

주어지는 배열에서 서로 다른 인덱스로 두 개를 뽑았을 때 나올 수 있는 두 수의 합 배열을 오름차순으로 반환

풀이

내 풀이

#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> numbers) {
  vector<int> answer;
  for (int i = 0; i < numbers.size() - 1; i++) {
    for (int j = i + 1; j < numbers.size(); j++) {
      if (find(answer.begin(), answer.end(), (numbers[i] + numbers[j])) == answer.end()) {
        answer.push_back(numbers[i] + numbers[j]);
      }
    }
  }
  sort(answer.begin(), answer.end());
  return answer;
}

int main() {
  vector<int> numbers = {2, 1, 3, 4, 1};
  vector<int> sol = {2, 3, 4, 5, 6, 7};
  assert(solution(numbers) == sol);
}

다른 풀이

  • set으로 넣는 게 가장 간단한 풀이법인 듯 하다.
profile
매일 부활하는 개복치

0개의 댓글