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;
}
'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 자릿수 더하기 (0) | 2020.12.31 |
---|---|
[프로그래머스] 약수의 합 (0) | 2020.12.30 |
[프로그래머스] 같은 숫자는 싫어 (0) | 2020.12.14 |
[프로그래머스] 두 정수 사이의 합 (0) | 2020.12.13 |
[프로그래머스] 문자열 내 p와 y의 개수 (0) | 2020.12.12 |