나누어 떨어지는 숫자 배열

문제 링크

나누어 떨어지는 숫자 배열

분석

배열의 값에 접근 해 값이 나누어 떨어지는지 확인해 반환하는 문제입니다.
이때 반환 값이 오름차순으로 정렬된 상태로 반환되어야 합니다.

arr을 나누기 전에 미리 정렬을 해주는 방법이 있습니다.
다른 방법으로 나누어 떨어지는 값을 저장한 후 정렬해주어 반환하는 방법이 있습니다.

풀이

나누기 전에 미리 정렬하고 푸는 방법은 다음과 같습니다.

#include <vector>
#include <algorithm>

using namespace std;

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

나누어 떨어지는 값을 저장한 후 정렬해준 방법은 다음과 같습니다.

#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.size() == 0)
    {
        answer.push_back(-1);
    }
    
    sort(answer.begin(), answer.end());
    
    return answer;
}

성능 요약

나누기 전에 미리 정렬한 성능은 다음과 같습니다.

테스트 1 〉 통과 (0.02ms, 4.16MB)
테스트 2 〉 통과 (0.02ms, 4.21MB)
테스트 3 〉 통과 (0.02ms, 4.21MB)
테스트 4 〉 통과 (0.02ms, 4.14MB)
테스트 5 〉 통과 (0.02ms, 4.2MB)
테스트 6 〉 통과 (5.05ms, 6.07MB)
테스트 7 〉 통과 (0.21ms, 4.14MB)
테스트 8 〉 통과 (0.01ms, 4.22MB)
테스트 9 〉 통과 (0.12ms, 4.2MB)
테스트 10 〉 통과 (0.12ms, 4.14MB)
테스트 11 〉 통과 (0.05ms, 4.16MB)
테스트 12 〉 통과 (0.05ms, 4.22MB)
테스트 13 〉 통과 (0.28ms, 4.21MB)
테스트 14 〉 통과 (0.14ms, 4.21MB)
테스트 15 〉 통과 (0.13ms, 4.21MB)
테스트 16 〉 통과 (0.04ms, 4.45MB)


나누어 떨어지는 값을 저장한 후 정렬한 성능은 다음과 같습니다.

테스트 1 〉 통과 (0.01ms, 4.19MB)
테스트 2 〉 통과 (0.01ms, 4.18MB)
테스트 3 〉 통과 (0.02ms, 4.19MB)
테스트 4 〉 통과 (0.01ms, 4.18MB)
테스트 5 〉 통과 (0.04ms, 3.7MB)
테스트 6 〉 통과 (0.62ms, 6.13MB)
테스트 7 〉 통과 (0.05ms, 4.22MB)
테스트 8 〉 통과 (0.01ms, 4.21MB)
테스트 9 〉 통과 (0.02ms, 4.21MB)
테스트 10 〉 통과 (0.06ms, 4.23MB)
테스트 11 〉 통과 (0.02ms, 3.72MB)
테스트 12 〉 통과 (0.02ms, 4.13MB)
테스트 13 〉 통과 (0.04ms, 4.2MB)
테스트 14 〉 통과 (0.04ms, 4.11MB)
테스트 15 〉 통과 (0.03ms, 4.45MB)
테스트 16 〉 통과 (0.02ms, 4.23MB)

Programmers 카테고리 내 다른 글 보러가기

댓글남기기