1. 문제
/*
문제 :
- 오름차순으로 반환하는 솔루션함수만들기
- 근데 이 넘버스 정수 배열에서 서로 다른 인덱스에 있는 2개 요소 뽑아 더해 만들 수 있는 모든 수로 만들어야함
*/
2. 내 접근
- 역시나 못 풀었다...
- 하지만 접근은 조금 해봤다. 아래와 같음
#include <vector>
#include <algorithm>
using namespace std;
//=========================================================================
vector<int> solution(vector<int> numbers)
{
// 일단 매개변수로 받은 넘버스 예시 5,4,3,2면 그 뒤에꺼랑 한개씩 짝지운다
// 어케 짝 지우지? 5,4/5,3/5,2/4,3/4,2/3,2
vector<int> NewV;
int Count = numbers.size();
while (--Count)
{
}
// 그 다음 걔네 다 더 해서 배열 만든다. 9/8/7/7/6/5
// 거의 중복된 숫자가 생길 거다. sort함수로 오름차순으로 정리해주고
sort(numbers.begin(), numbers.end());
// 그 다음 unique 함수로 새로운 NewEnd 정해주고
auto NewEnd = unique(numbers.begin(), numbers.end());
// 그 다음 벡터사이즈 resize 하는데 numbers.begin부터 NewEnd의 디스턴스로 리사이징해준다
numbers.resize(distance(numbers.begin(), NewEnd));
// 그리고 이 정리된 벡터를 반환해준다!
return numbers;
}
//=========================================================================
#include <iterator>
#include <iostream>
void print(vector<int> vec)
{
copy(vec.begin(), vec.end(), std::ostream_iterator<int>(cout, " "));
cout << endl;
}
//=========================================================================
int main()
{
print(solution({ 2, 1, 3, 4, 1 })); // 2 3 4 5 6 7
print(solution({ 5, 0, 2, 7 })); // 2 5 7 9 12
return 0;
}
3. 정답
vector<int> solution(vector<int> numbers)
{
// 일단 매개변수로 받은 넘버스 예시 5,4,3,2면 그 뒤에꺼랑 한개씩 짝지운다
// 어케 짝 지우지? 5,4/5,3/5,2/4,3/4,2/3,2
vector<int> NewV;
int Count = numbers.size();
// 그 다음 걔네 다 더 해서 배열 만든다. 9/8/7/7/6/5
for (int i = 0; i < Count; i++)
{
for (int j = i+1; j < Count; j++)
{
NewV.push_back(numbers[i] + numbers[j]);
}
}
// sort함수로 오름차순으로 정리해주고
sort(NewV.begin(), NewV.end());
// 그 다음 unique 함수로 새로운 NewEnd 정해주고
auto NewEnd = unique(NewV.begin(), NewV.end());
// 그 다음 벡터사이즈 resize 하는데 numbers.begin부터 NewEnd의 디스턴스로 리사이징해준다
NewV.resize(distance(NewV.begin(), NewEnd));
// 그리고 이 정리된 벡터를 반환해준다!
return NewV;
}
4. 코멘트
- 아...포문 쓰는 게 왜 아직 어려운걸까.
- 그래도 성장했다. 아무것도 못 쓰다가 접근하는 방식을 생각했당
'알고리즘(C++)' 카테고리의 다른 글
그래프 (0) | 2025.02.04 |
---|---|
유니온 파인드 알고리즘 (0) | 2025.02.03 |
배열 - 배열제어하기 (0) | 2025.01.30 |
배열 - 배열정리하기 (0) | 2025.01.30 |
큐- 요세푸스 문제 (0) | 2025.01.28 |