https://school.programmers.co.kr/learn/courses/30/lessons/120897
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
■ 문제 설명
정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
■ 제한사항
- 1 ≤ n ≤ 10,000
■ 나의 코드
class Solution {
public int[] solution(int n) {
int ary[] = new int[10000];
int idx = 0;
for(int i=1; i<=n; i++) {
if(n%i == 0) {
ary[idx] = i;
idx++;
}
}
int answer[] = new int[idx];
for(int i=0; i<idx; i++) {
if(ary[i] != 0)
answer[i] = ary[i];
}
return answer;
}
}
■ 코드 해설
n을 i로 나누었을 때 나머지가 0이면 약수가 됩니다. idx는 배열의 범위 및 순서를 저장하기 위한 용도로 사용했습니다.
아직 C언어 동적 할당이 어려워서 자바로 풀어보았습니다. C언어 공부를 조금 더 해서 C언어로 다시 이 문제를 풀어보고 싶습니다 !!