문제 풀이 (JAVA)
import java.util.*;
class Solut ion{
public int[] solution(int[] arr, int divisor) {
List<Integer> list = new ArrayList<Integer>();
for(int i=0; i<arr.length; i++){
if(arr[i] % divisor == 0){ // 배열의 숫자가 divisor로 나누어떨어진다면
list.add(arr[i]); // 리스트에 추가한다.
}
}
if(list.size()<1){ // 리스트가 없다는것은 나누어 떨어지는 값이 없으므로
int [] answer = new int[1];
answer[0]=-1; // answer에 -1 배열을 반환한다.
return answer;
}
list.sort(Comparator.naturalOrder()); // 나누어 떨어지는 값을 오름차순으로 정렬한다.
int [] answer = new int[list.size()];
for(int i=0; i<answer.length; i++){
answer[i]=list.get(i); // 정렬된 리스트의 값을 출력 배열에 저장한다.
}
return answer;
}
}
주요 핵심 포인트
1. divisor로 나누어떨어지는 값만 리스트에 저장하였다.
2. 저장된 리스트가 없다면 나누어떨어지는 값이 없으므로 -1을 리턴하였다.
3. 리스트가 존재한다면 오름차순으로 정렬하였다.
'프로그래머스(JAVA)' 카테고리의 다른 글
[1차]다트 게임 (0) | 2022.04.24 |
---|---|
같은 숫자는 싫어 (0) | 2022.04.24 |
두 정수 사이의 합 (0) | 2022.04.24 |
문자열 내 마음대로 정렬하기 (0) | 2022.04.24 |
문자열 내 p와 y의 개수 (0) | 2022.04.17 |