반응형
안녕하세요? 수구리입니다.
이번 포스팅에서는 저번 포스팅에서 풀었던 문제와 매우 유사합니다!
바로 문제부터 확인하고 와주세요!
[ 문제 ] 프로그래머스: 나누어 떨어지는 숫자 배열
https://programmers.co.kr/learn/courses/30/lessons/12910
[ 나의 풀이 ]
#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 문제를 정복해 나가도록 하겠습니다!
새해 복 많이 받으세요!
감사합니다!
반응형
'✏️ PS > Programmers' 카테고리의 다른 글
[ C++ ] 프로그래머스 Level1: 문자열 내 p와 y의 개수 (0) | 2022.01.11 |
---|---|
[ C++ ] 프로그래머스: 같은 숫자는 싫어 (2) | 2022.01.04 |
[ C++ ] 프로그래머스: 약수의 합 (0) | 2021.12.30 |
[ C++ ] 프로그래머스: 서울에서 김서방 찾기 (0) | 2021.12.21 |
[ C++ ] 프로그래머스: 두 정수 사이의 합 (0) | 2021.12.21 |