1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12910
2. 풀이
- 문제의 핵심은 간단하다. 배열과 정수를 파라미터로 받아 각 배열 안에 값을 가지고 파라미터로 받은 정수와 나누었을 때 딱 나누어 떨어지는 값을 찾아 배열에 담고, 오름차순으로 정렬해서 return 하면 되고, 나누어 떨어지는 값이 없으면 -1을 담아 return 한다.
- 배열의 크기를 조절하기 위해 count 변수에 나누어 떨어지는지 비교한고, count에 1씩 증가시킨다.
- 나누어 떨어지는 값이 없어 count 가 0이라면 -1을 새로운 배열에 담아 리턴하고, 그렇지 않으면 count 된 크기만큼 배열을 만들고, 다시 count를 초기화한다. (count에 값을 다시 담기 위한 초기화)
- 다시 배열과 정수 값을 비교해서 해당하면 count 번째에 그 값을 넣고 count를 1씩 증가시키고 정렬 후, return
3. 코드
package programmers;
import java.util.Arrays;
public class Ex_DividedNumberArrangement {
public static void main(String[] args) {
int[] arr = new int[]{2, 36, 1, 3};
int divisor = 1;
System.out.println(Arrays.toString(solution(arr, divisor)));
}
public static int[] solution(int[] arr, int divisor) {
int count = 0;
for (int k : arr) {
if (k % divisor == 0) {
count++;
}
}
if (count == 0) {
return new int[]{-1};
} else {
int[] numArr = new int[count];
count = 0;
for (int j : arr) {
if (j % divisor == 0) {
numArr[count] = j;
count++;
}
}
Arrays.sort(numArr);
return numArr;
}
}
}
'Programmers' 카테고리의 다른 글
[Java] 프로그래머스 : 정수 제곱근 판별 (0) | 2022.04.20 |
---|---|
[Java] 프로그래머스 : 제일 작은 수 제거하기 (0) | 2022.04.19 |
[Java] 프로그래머스 : 최대공약수와 최소공배수 (0) | 2022.04.18 |
[Java] 프로그래머스 : 콜라츠 추측 (0) | 2022.04.15 |
[Java] 프로그래머스 : 하샤드 수 (0) | 2022.04.13 |