arry, divisor 를 각각 입력받고, arry의 각 element 중 divisor로 나누어 떨어지는 값을 정렬한 배열을 반환하는 문제이다. (오름차순 정렬, 나누어 떨어지는 element 가 없다면 -1 반환)

나누어 떨어진다는 것은 나머지가 없다는 뜻이므로 divisor 로 나눈 나머지가 0인 숫자를 answer 벡터에 넣어주면 된다.

STL 의 내장함수인 sort() 함수를 사용하면 오름차순을 쉽게 적용할 수 있다.

 

#include <string>
#include <vector>
#include<algorithm>

using namespace std;

vector<int> solution(vector<int> arr, int divisor) {
    vector<int> answer;
    for(int i = 0; i<arr.size(); i++){
    	// divisor 로 나누어 떨어지는 수만 answer 벡터에 넣는다.
        if(arr[i] % divisor == 0){
            answer.push_back(arr[i]);
        }
    }

	// 오름차순 정렬
    sort(answer.begin(), answer.end());

	// 나누어 떨어지는 원소가 없으면 -1 반환
    if(answer.empty()){
        answer.push_back(-1);
    }
    return answer;
}

 

 

 

+ Recent posts