[HackerRank/C++] Closest Numbers
2023. 3. 14. 09:52ㆍ코딩테스트 해커랭크/Algorithms -Easy
배열 arr가 주어질때, 정렬된 arr에서 두 수의 차이가 최소인 집합을 모두 vector에 저장해 return 한다
vector<int> closestNumbers(vector<int> arr)
{
vector<int> result;
sort(arr.begin(), arr.end());
int diff = INT_MAX;
for (size_t i = 1; i < arr.size(); ++i)
{
if (diff > arr[i] - arr[i - 1])
{
diff = arr[i] - arr[i - 1];
result.clear();
result.push_back(arr[i - 1]);
result.push_back(arr[i]);
}
else if (diff == arr[i] - arr[i - 1])
{
result.push_back(arr[i - 1]);
result.push_back(arr[i]);
}
}
return result;
}
arr를 sort함수로 정렬한다
최솟값을 저장할 diff를 INT_MAX로 초기화 한 후 arr를 순회하며 두 수를 비교한다
더 작은 값을 찾는다면 result에 저장했던 값을 clear로 밀어버리고 두 수를 push back 한다
만약 차이값이 같다면 두 수를 push back하고 반복문이 끝나면 result를 return 한다
'코딩테스트 해커랭크 > Algorithms -Easy' 카테고리의 다른 글
| [HackerRank/C++] The Love-Letter Mystery (0) | 2023.03.10 |
|---|---|
| [HackerRank/C++] Beautiful Binary String (0) | 2023.03.10 |
| [HackerRank/C++] Funny String (0) | 2023.03.06 |
| [HackerRank/C++] Pangrams (0) | 2023.03.02 |
| [HackerRank/C++] HackerRank in a String! (0) | 2023.03.02 |