프로그래머스 - 나누어 떨어지는 숫자 배열 < level 1 >

2020. 6. 5. 10:19알고리즘_생각하기/프로그래머스 Level 1

문제 설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제한사항

  • arr은 자연수를 담은 배열입니다.
  • 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
  • divisor는 자연수입니다.
  • array는 길이 1 이상인 배열입니다.

풀이

사용 언어 : C++

#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++)
         {
                        if (arr[i] % divisor == 0) //나누어 떨어지는 수면
                         {
                                   answer.push_back(arr[i]); //정답에 넣기
                         }
         }

         if (answer.empty()) //정답이 비어있으면 나누어떨어지는 수가 없다는 얘기이므로
         {
                       answer.push_back(-1); //-1을 반환한다.
        }
        else
        {
                       sort(answer.begin(), answer.end());  //  #include <algorithm>이 있어야 돌아간다.
        }

     return answer;
    
}