<문제 제시>
<문제설명>
정수 n이 매개변수로 주어질 때,
n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

<예시 입출력>

<문제 해결 과정>
n의 약수도 구하고, 오름차순 정렬까지하는 문제이다.
정렬을 편히 하기 위해 리스트를 선언하고자 하였다.
가장 첫번째 수는 무조건 1이므로 temp.add(0, 1); 로 0번째 수는 넣어주었다.
약수는 1을 제외한 수이므로 temp.remove(0); 을 통해 모든 약수를 구한 후에는 다시 1을 지워주었다.
<전체코드>
public class divisor {
// 리스트를 활용하여 answer에 약수를 담음
public static int[] solution(int n) {
List<Integer> temp = new ArrayList<>();
temp.add(0, 1);
int k = 1;
for(int i = 1; i <= n; i++) {
if(n % i == 0) {
temp.add(k, i);
k++;
}
}
temp.remove(0);
int[] answer = new int[temp.size()];
for(int i = 0; i < temp.size(); i++) {
answer[i] = temp.get(i);
}
return answer;
}
public static void main(String[] args) {
int n = 24;
System.out.println(Arrays.toString(solution(n)));
}
}
"합성수 찾기" 문제를 통해 배웠던 약수찾기 로직을 통해 쉽게 풀어낼 수 있었다.
리스트를 활용하여 값을 구하고, 배열에 옮겨담아 답을 구할 수 있었다.
문제링크)
https://school.programmers.co.kr/learn/courses/30/lessons/120897
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Algorithms > 프로그래머스' 카테고리의 다른 글
[프로그래머스] '최댓값 만들기 (1)' - Java (0) | 2023.05.03 |
---|---|
[프로그래머스] '모음 제거' - Java (0) | 2023.05.03 |
[프로그래머스] '합성수 찾기' - Java (0) | 2023.05.02 |
[프로그래머스] '영어가 싫어요' - Java (0) | 2023.05.01 |
[프로그래머스] '팩토리얼' - Java (0) | 2023.05.01 |