문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
풀이 방법
* 기본적으로 주어진 라이브러리만 이용하여 풀이하려하였다.
1. 자연수 배열 arr와 divisor를 입력받는다.
2. arr의 원소들 중 divisor로 나누어 떨어지는 값을 선언해둔 answer에 넣는다.
3-1. 나누어 떨어지는 숫자가 없을 경우 answer에 -1을 넣어 반환한다.
3-2. answer에 원소가 2개 이상 들어있다면 원소들을 오름차순으로 정렬하여 반환한다.
#include <string>
#include <vector>
//<algorithm> 라이브러리의 sort() 함수 쓰지 않고
using namespace std;
vector<int> solution(vector<int> arr, int divisor) {
vector<int> answer;
int temp = 0;
for (int i = 0; i < arr.size(); i++){
if(arr.at(i) % divisor == 0) answer.push_back(arr[i]);
}
if(answer.empty() == true) answer.push_back(-1);
else if (answer.size() > 1) {
for (int i = 0; i < answer.size() - 1; i++){
for (int k = i + 1; k < answer.size(); k++){
if(answer.at(i) > answer.at(k)) {
temp = answer.at(i);
answer.at(i) = answer.at(k);
answer.at(k) = temp;
}
}
}
}
return answer;
}
'프로그래머스 > 1레벨' 카테고리의 다른 글
2016년 (2) | 2022.12.24 |
---|---|
가운데 글자 가져오기 (0) | 2022.12.23 |
같은 숫자는 싫어 (0) | 2022.12.23 |
문자열 내 마음대로 정렬하기 (0) | 2022.12.23 |
문자열 내 p와 y의 개수 (0) | 2022.12.23 |