⏱소요 시간 - 17분
🔑해결 방법
문제 푸는 과정을 먼저 적어놓고 코딩을 해서 금방 풀었던 문제. 문제가 쉽기도 했다.
1. arr[]을 정렬한다.
2. arr[]을 돌면서 각 요소들을 divisor로 나눈 나머지(arr[i] % divisor)가 0이면 arr[i]를 list에 추가한다.
3. 만약 list.size()가 0이면 list에 -1을 추가한다.
4. list를 answer[] 형태로 바꿔준다.
배열에 값을 계속 추가해야 하는 문제로 배열이 계속 유동적으로 변해야 한다.
이는 이론적으로 불가능한 일이므로 리스트를 사용했다.
예전 같았다면 배열에 추가하려고 삽질했을 텐데 배열은 고정적이라는 걸 잊지 말자!
🔎소스 코드
package step1;
import java.util.ArrayList;
import java.util.Arrays;
// 나누어 떨어지는 숫자 배열
public class Ex11 {
public static void main(String[] args) {
int[] arr = { 5, 9, 7, 10 };
int divisor = 5;
System.out.println(solution(arr, divisor));
}
public static int[] solution(int[] arr, int divisor) {
Arrays.sort(arr);
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < arr.length; i++) {
if(arr[i] % divisor == 0) {
list.add(arr[i]);
}
}
if(list.size() == 0) {
list.add(-1);
}
int[] answer = new int[list.size()];
for(int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
'ALGORITHM' 카테고리의 다른 글
[프로그래머스 Java] 문자열 내 마음대로 정렬하기 (0) | 2021.01.12 |
---|---|
[프로그래머스 Java] 두 정수 사이의 합 (0) | 2021.01.12 |
[프로그래머스 Java] 같은 숫자는 싫어 (0) | 2021.01.10 |
[프로그래머스 Java] 가운데 글자 가져오기 (0) | 2021.01.10 |
[프로그래머스 Java] 3진법 뒤집기 (0) | 2021.01.10 |