문제
풀이
(1) 문제 분석하기
- arr의 길이는 정해져 있지 않으므로 배열 대신 Arraylist 사용
// 선언
List<Integer> list = new ArrayList<>();
// add 메서드로 요소 추가
list.add(element)
// list의 길이
list.size()
// 리스트 오름차순으로 정렬
Collections.sort(list);
// index에 접근
list.get(i)
// String 타입의 List를 배열로 변환할 때
// int 형과 같은 primitive 타입 X
stringList.toArray(new String[0])
- return 타입이 int 타입의 배열이기 때문에 다시 배열로 변환하여 출력
(2) 슈도코드 작성하기
int타입 Arraylist 선언
for(입력 받은 배열의 길이 만큼) {
if(배열 요소를 divisor로 나눈 나머지가 0이면) {
Arraylist.add(배열요소)
}
}
if(리스트 사이즈가 0이면) {
배열에 -1을 담아 반환
}
배열 오름차순으로 정렬
Arraylist를 배열로 변환
(3) 코드로 구현하기
package algorithm.test02;
import java.util.*;
public class NumberArr {
// 입력 받은 arr을 전체 배열을 돌면서
// 조건을 걸어 해당하는 값만 리스트에 추가
// list.size()가 0이면 바로 -1 넣은 arr 리턴
// list 정렬해서 다시 arr로 바꿔주고 리턴
public static void main(String[] args) {
int[] arr ={5, 9, 7, 10};
int divisor = 5;
int[] answer = solution(arr, divisor);
for (int i = 0; i < answer.length; i++) {
System.out.println(answer[i]);
}
}
public static int[] solution(int[] arr, int divisor) {
List<Integer> list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
if (arr[i] % divisor == 0) {
list.add(arr[i]);
}
}
if (list.size() == 0) {
int[] answer = {-1};
return answer;
}
Collections.sort(list);
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i).intValue();
}
return answer;
}
}
'📊 Algorithm&SQL' 카테고리의 다른 글
[Java/프로그래머스] 완주하지 못한 선수 (0) | 2022.11.19 |
---|---|
[Java/프로그래머스] 수박수박수박수박수박수? (0) | 2022.11.19 |
[Java/프로그래머스] 2016년 (0) | 2022.11.19 |
[Java/백준] 주몽 #1940 (0) | 2022.10.12 |
[Java/백준] 연속된 자연수의 합 구하기 #2018 (0) | 2022.10.03 |