반응형
문제는 다음과 같습니다.
코딩테스트 연습 - 두 개 뽑아서 더하기 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 두 개 뽑아서 더하기
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한
programmers.co.kr
풀이 코드는 다음과 같습니다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer;
for(int i{0};i<numbers.size();i++)
{
for(int j{i+1};j<numbers.size();j++)
{
int n = numbers[i]+numbers[j];
if(answer.empty())
{
answer.push_back(n);
}
else
{
bool check{true};
for(int k{0};k<answer.size();k++)
{
if(answer[k]==n)
{
check=false;
break;
}
}
if(check)
{
answer.push_back(n);
}
}
}
}
sort(answer.begin(),answer.end());
return answer;
}
서로 다른 숫자이어야 하고 쌍 (a,b)와 (b,a)는 동일하기 때문에 이러한 점을 피해 범위를 정하시면 됩니다.
이후 정답 벡터가 비어있으면 바로 넣고 있는 경우에는 정답 벡터 안에 동일한 값을 가지는 원소가 있는지 확인하여 없는 경우에만 넣고 맨 마지막에 sort로 정렬하면 됩니다.
반응형
'프로그래머스 Lv.1 코딩테스트' 카테고리의 다른 글
[프로그래머스 Lv.1] 최소직사각형 (0) | 2022.04.15 |
---|---|
[프로그래머스 Lv.1] 예산 (0) | 2022.03.04 |
[프로그래머스 Lv.1] 두 정수 사이의 합 (0) | 2022.03.04 |
[프로그래머스 Lv.1] 모의고사 (0) | 2022.03.04 |
[프로그래머스 Lv.1] 나누어 떨어지는 숫자 배열 (0) | 2022.03.04 |