✔ 나누어 떨어지는 숫자 배열
문제 분석하기
각 element를 divisor로 나누어 떨어지는지 확인하며 나누어 떨어질 경우 리스트에 저장
모두 저장한 후 오름차순으로 정렬하고 배열로 변환하여 반환
만약 리스트가 비어있다면 배열에 -1을 담아 반환
손으로 풀어보기
- 각 element를 divisort로 나누어 떨어지는지 확인 반복
- 나누어 떨어질 경우 리스트에 저장
- 정답 리스트를 오름차순 정렬
- 정답 리스트를 배열로 변환하여 반환
- 리스트가 비어있다면 배열에 -1을 담아 반환
슈도코드 작성하기
arr(자연수를 담은 배열)
divisor(자연수)
answer(정답 리스트)
for(i -> arr동안) {
if(i가 divisor로 나누어 떨어진다면)
answer에 i 저장
}
answer 오름차순 정렬
if(answer이 비어있다면)
배열에 -1을 담아 반환
else
answer을 배열로 변환하여 반환
코드 구현하기
/**
* 12910) 나누어_떨어지는_숫자_배열
*/
public class L005_12910 {
// arr(자연수를 담은 배열)
// divisor(자연수)
public int[] solution(int[] arr, int divisor) {
// answer(정답 리스트)
List<Integer> answer = new ArrayList<>();
for (int i : arr) {
// i가 divisor로 나누어 떨어진다면
if (i % divisor == 0)
// answer에 i 저장
answer.add(i);
}
// answer 오름차순 정렬
Collections.sort(answer);
// answer이 비어있다면
if (answer.isEmpty())
// 배열에 -1을 담아 반환
return new int[] { -1 };
// answer이 비어있지 않다면
else
// answer을 배열로 변환하여 반환
return answer.stream().mapToInt(Integer::intValue).toArray();
}
// 테스트 케이스
public static void main(String[] args) {
L005_12910 solution = new L005_12910();
int[] arr = { 5, 9, 7, 10 };
int divisor = 5;
int[] result = solution.solution(arr, divisor);
System.out.println(Arrays.toString(result));
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[12915] 문자열 내 마음대로 정렬하기 (0) | 2023.12.25 |
---|---|
[12912] 두 정수 사이의 합 (0) | 2023.12.25 |
[12903] 가운데 글자 가져오기 (0) | 2023.12.25 |
[12901] 2016년 (0) | 2023.12.25 |
[77484] 로또의 최고 순위와 최저 순위 (0) | 2023.12.19 |