[ C++ ] 프로그래머스: 나누어 떨어지는 숫자 배열
✏️ PS/Programmers

[ C++ ] 프로그래머스: 나누어 떨어지는 숫자 배열

반응형

 

안녕하세요? 수구리입니다.

이번 포스팅에서는 저번 포스팅에서 풀었던 문제와 매우 유사합니다!

바로 문제부터 확인하고 와주세요!

 

 

 

[ 문제 ] 프로그래머스: 나누어 떨어지는 숫자 배열

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

 

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

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

programmers.co.kr

 

 

[ 나의 풀이 ]

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

using namespace std;

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

 

 

 

 

[ 설명 ]

1. 우선 solution 함수의 return type은 int형 vector입니다.

2. 인자로 받아오는 데이터는 int형 vector arr와 나누는 수 divisor입니다.

3. 가장 먼저 저는 arr vector를 sort 해주었습니다.

4. 그다음 arr의 크기만큼 순회를 해주면서 한 요소씩 꺼내어 divisor로 나누어 떨어지는지 확인합니다.

5. 만약 나누어 떨어진다면 해당 arr [i] 요소를 answer vector에 push_back 해줍니다.

6. 그렇게 모든 arr vector의 요소에 대해서 확인을 한 뒤, answer vector가 비어있다면 -1이 담긴 answer vector를 리턴해주기 위해서 -1을 push_back 해줍니다.

7. 마지막으로 answer vector를 반환합니다.

 

이상으로 이전 문제와 더불어 크게 어려운 부분은 없던 것 같습니다.

계속해서 프로그래머스 Level 1 문제를 정복해 나가도록 하겠습니다!

새해 복 많이 받으세요!

감사합니다!

 

 

반응형