알고리즘 풀이/프로그래머스

[Level1] 나누어 떨어지는 숫자배열

mhko411 2021. 1. 21. 22:18
728x90

문제

정수로 이루어진 리스트와 정수가 입력되었을 때 리스트 중 입력된 정수로 나누어 떨어지는 수를 오름차순으로 정렬하여 출력한다. 

만약 나누어 떨어지는 수가 없다면 -1을 포함시켜 출력한다.

 

입력

[5, 9, 7, 10] 5

[3, 2, 6] 10

 

출력

[5, 10]

[-1]


1. 리스트를 탐색하여 divisor와 나누어 떨어지는 수를 answer에 추가한다.

2. 리스트 탐색이 종료되었을 때 answer가 빈 리스트면 -1을 추가한다.

3. 마지막으로 answer을 정렬하여 반환한다.

 

python

def solution(arr, divisor):
    answer = []
    
    for number in arr:
        if not number%divisor:
            answer.append(number)
    if answer==[]:
        answer.append(-1)
    answer.sort()
    return answer

 

c++

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

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

'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

[Level1] 완주하지 못한 선수  (0) 2021.01.22
[Level1] 같은 숫자는 싫어  (0) 2021.01.21
[Level1] 자릿수 더하기  (0) 2021.01.21
[Level1] 시저 암호  (0) 2021.01.21
[Level1] 두 정수 사이의 합  (0) 2021.01.21