안녕하세요. BlockDMask 입니다.
하나씩 하나씩 레벨 1부터 풀어보겠습니다
천천히 부담없이 풀고있습니다. 문제 풀어보겠습니다.
0. 제목
프로그래머스 LEVEL 1
'나누어 떨어지는 숫자 배열' 입니다.
1. 문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을
오름차순으로 정렬한 배열을 반환하는 함수, solution을 구현.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하면 됩니다.제한사항
arr은 자연수를 담은 배열이고
정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
divisor는 자연수입니다.
array는 길이 1 이상인 배열입니다.
예시.
arr -> divisor -> return
[5, 9, 6, 20] -> 5 -> [5, 20]
[1, 2, 3] -> 10 -> [-1]
[3, 5, 7, 1, 2, 9] -> 1 -> [1, 2, 3, 5, 7, 9]
[8, 4, 5, 2, 1] -> 2 -> [2, 4, 8]
2. 풀이과정
나누어 떨어지는 숫자 배열.
이름이 뭔가 있어보이지만.
첫번째 인자로 들어오는 배열을
두번째 인자로 들어오는 자연수로
나누어 떨어지는 애들을
순서대로 나열.
없으면 -1 리턴해라.
C++ STL의 vector를 사용했고
<algorithm> 에 있는 sort 함수를 사용했습니다.
<연관글> |
3. 소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <string> #include <vector> #include <algorithm> using namespace std; bool Order(int a,int b) { return ( a < b ); } vector<int> solution(vector<int> arr, int divisor) { vector<int> answer; for(size_t i = 0; i < arr.size(); ++i) { if(arr[i] % divisor == 0) { answer.push_back(arr[i]); } } if(answer.size() == 0) { answer.push_back(-1); } else { sort(answer.begin(), answer.end(), Order); } return answer; } | cs |
4. 채점
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12910
감사합니다.
'<알고리즘 문제풀이&연습> > [C++] 백준, 프로그래머스 등등' 카테고리의 다른 글
[프로그래머스] LEVEL 1 : 핸드폰 번호 가리기 (C++) (1) | 2018.09.18 |
---|---|
[프로그래머스] LEVEL 1 : 자릿수 더하기 (C++) (0) | 2018.09.17 |
[프로그래머스] LEVEL 1 : 자연수 뒤집어 배열로 만들기 (C++) (0) | 2018.08.17 |
[프로그래머스] LEVEL 1 : 문자열 다루기 기본(C++) (0) | 2018.08.15 |
[프로그래머스] LEVEL 1 : 가운데 글자 가져오기(C++) (0) | 2018.08.04 |
[Level 2] 콜라즈 추측 (0) | 2017.12.26 |
[Level 1] 피보나치 수 (반복문) (3) | 2017.12.15 |
[Level 1] 최대공약수와 최소공배수 (0) | 2017.12.14 |