[C++] 프로그래머스 나누어 떨어지는 숫자 배열
2020. 11. 11.
반응형

programmers.co.kr/learn/courses/30/lessons/12910

 

코딩테스트 연습 - 나누어 떨어지는 숫자 배열

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

programmers.co.kr

 

1. 서론

 

level 1의 1학년도 풀 수 있는 문제. 정렬을 생각하면 1학년은 어려울 수도 ㅎ

 

2. 문제 풀이

 

자연수로 이루어진 배열이 있고 숫자가 하나 주어진다. 배열에 있는 값과 주어진 값을 나누었을 때 나머지가 없으면 그 값을 저장하고 모아서 출력한다. 만약 나누어 떨어지는 숫자가 없으면 -1을 배열에 넣어준다. 그리고 배열을 오름차순으로 출력한다.

 

2, 36, 1, 3 -> 1

=> 2, 36, 1, 3 => 1, 2, 3, 36

 

3. 코드 설명

 

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

using namespace std;

vector<int> solution(vector<int> arr, int divisor) {
    vector<int> answer;
    int i;
    
    for (i = 0; i < arr.size(); i++)
        if(arr[i] % divisor == 0)
            answer.push_back(arr[i]);
    
    if (answer.empty())
        answer.push_back(-1);
    
    sort(answer.begin(), answer.end());
    
    return answer;
}

 

arr는 주어지는 배열 divisor는 나눌 값이다. arr 배열의 값과 divisor의 나머지가 0이면 answer 배열에 넣는다.

나누어 떨어지는 경우가 없으면 answer에 아무런 값도 들어가지 않기 때문에 -1을 넣어준다.

answer 배열을 오름차 순으로 정렬 후 return 해준다.

 

별로 어렵지도 않은 문제지만 기록용 ㅎ

 

 

 

 

 

 

 

 

 

 

 

반응형
myoskin