[문제]
[문제 설명]
- 가장 작은 차이를 가지는 두 수의 조합을 담는 벡터를 반환하는 함수를 만들자
[문제 풀이]
- 벡터에 있는 수를 오름차순으로 정렬
- for문을 돌면서 두 값의 차이를 구함
> 두 값의 차이가 min과 같다면 새로 만든 벡터에 두 원소를 push
> 두 값의 차이가 min보다 작다면 새로 만든 벡터에서 모든 원소를 pop 하고 새로운 두 원소를 push
> 두 값의 차이가 min보다 크다면 그냥 넘어감
[코드]
vector<int> closestNumbers(vector<int> arr) {
sort(arr.begin(),arr.end());
vector<int> brr;
int min=arr.back();
for(int i=1;i<arr.size();i++){
if(arr[i]-arr[i-1]<min){
while(brr.size()!=0){
brr.pop_back();
}
min = arr[i]-arr[i-1];
brr.push_back(arr[i-1]);
brr.push_back(arr[i]);
}
else if(arr[i]-arr[i-1]==min){
brr.push_back(arr[i-1]);
brr.push_back(arr[i]);
}
}
return brr;
}
[실행결과]
'CODE > HackerRank' 카테고리의 다른 글
[C++] HackerRank : A Very Big Sum (0) | 2021.10.07 |
---|---|
[C++] HackerRank : Compare the Triplets (0) | 2021.10.03 |
[C++] HackerRank : Plus Minus (0) | 2021.10.03 |
[C++] HackerRank : Grading Students (0) | 2021.10.03 |
[C++] HackerRank : Equal Stacks (0) | 2021.10.03 |