Fascination
article thumbnail

[문제]

 

Closest Numbers | HackerRank

Find the closest numbers in a list.

www.hackerrank.com

 

 

[문제 설명]

- 가장 작은 차이를 가지는 두 수의 조합을 담는 벡터를 반환하는 함수를 만들자

 

 

[문제 풀이]

- 벡터에 있는 수를 오름차순으로 정렬

- 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
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!