[HackerRank/C++] Minimum Distances
2023. 2. 7. 07:51ㆍ코딩테스트 해커랭크/Algorithms -Easy
배열 a에서 같은 값을 가지는 수들을 찾고, 그 수들의 간격중 가장 짧은 간격값을 return한다
만약 그런 수가 없다면 -1을 return 한다
int minimumDistances(vector<int> a)
{
int result = INT_MAX;
for (int i = 0; i < a.size(); ++i)
for (int j = i + 1; j < a.size(); ++j)
if (a[i] == a[j])
{
if (result > j - i)
result = j - i;
break;
}
if (result < a.size() + 1)
return result;
else
return -1;
}
가장 작은 수를 가질것이므로 result의 초기값은 INT_MAX로 초기화 한다
반복문을 돌며 i번째와 j번째 숫자가 같은지 체크한다
만약 같고 j - i가 result보다 작다면 result의 값을 j - i로 갱신한다
모든 반복문이 끝난 후 result의 값이 a.size() + 1보다 작다면 한번이라도 값이 갱신됐으므로 result를 return 하고
그렇지 않다면 갱신이 일어나지 않았으므로 -1을 return 한다
'코딩테스트 해커랭크 > Algorithms -Easy' 카테고리의 다른 글
| [HackerRank/C++] Chocolate Feast (0) | 2023.02.07 |
|---|---|
| [HackerRank/C++] Halloween Sale (0) | 2023.02.07 |
| [HackerRank/C++] Beautiful Triplets (0) | 2023.02.07 |
| [HackerRank/C++] Modified Kaprekar Numbers (0) | 2023.02.07 |
| [HackerRank/C++] Taum and B'day (0) | 2023.02.07 |