C++/programmers 코딩테스트(level 0) C++

[C/C++] programmers Level 0 가까운 수

CE : 하랑 2023. 9. 18. 12:18

 

 

 

 

 

코드

 

#include <vector>
#include <algorithm> // *min_element(v.begin(), v.end()); -> vector 가장 작은 값

using namespace std;

int solution(vector<int> array, int n) {
    int answer = 0;
    vector<int> num; // abs(array[i]-n) 값들 순서대로 들어감 
   
    sort(array.begin(), array.end()); // array 값 순서대로 정렬
    
    for(int i=0;i<array.size();i++){
        num.push_back(abs(array[i]-n));
    }
    
    int min=*min_element(num.begin(), num.end()); // vector 가장 작은 값  
    
    for(int i=0;i<num.size();i++){ // n을 - 한 값이 같을 수 있으므로 그 중 가장 작은 값 출력 -> 인덱스 가장 앞에 있는 것
        if(min==num[i]){
            answer=array[i];
            break; // 발견시 반복문 탈출
        }
    }
    
    return answer;
}