반응형
문제
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한사항
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
입출력 예
한 줄 요약
arr의 원소중 divisor로 나눴을 때 나머지가 0인 원소들을 오름차순으로 정렬!
내 코드
1. divisor로 나누어 떨어지는 원소 담을 ArrayList 생성
2. ArrayList에 나누어 떨어지는 수 for문으로 넣기
3. ArrayList길이가 1 이상일 때 answer배열에 ArrayList 배열을 대입 후 정렬
4. ArrayList길이가 0일 때 -1 대입
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
int[] answer = {};
ArrayList<Integer> arrList = new ArrayList<Integer>();
for (int i=0; i<arr.length; i++) {
if (arr[i]%divisor == 0) {
arrList.add(arr[i]);
}
}
if (arrList.size() > 0) {
answer = new int[arrList.size()];
for (int i=0; i<answer.length; i++) {
answer[i] = arrList.get(i);
}
Arrays.sort(answer);
} else {
answer = new int[1];
answer[0] = -1;
}
return answer;
}
}
%를 사용해 나누어 떨어지는 수를 구하는 것과 ArrayList의 길이로 결과를 다르게 출력하는 것이 핵심!
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 (Level 1) 문자열 내림차순으로 배치하기 [Java] (0) | 2020.08.02 |
---|---|
프로그래머스 (Level 1) 두 정수 사이의 합 [Java] (0) | 2020.08.02 |
프로그래머스 (Level 1) 같은 숫자는 싫어 [Java] (0) | 2020.07.31 |
프로그래머스 (Level 1) 가운데 글자 가져오기 [Java] (0) | 2020.07.31 |
프로그래머스 (Level 1) K번째수 [Java] (0) | 2020.07.30 |