Coding Test/[프로그래머스] Java

[프로그래머스 / Java] Lv.1 나누어 떨어지는 숫자 배열

annovation 2025. 6. 22. 13:38

Question

https://school.programmers.co.kr/learn/courses/30/lessons/12910

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


Algorithm

  1. for문을 사용해 arr의 배열을 순회하며, 주어진 divisor로 나누어 떨어지는 값을 찾는다.
  2. 나누어 떨어지는 값이 없는 경우 -1을 반환한다.
  3. divisor로 나누어 떨어진 값들을 오름차순 정렬하여, 최종 결과를 return 한다.

❗️두 번째 반복문을 생각하는 로직이 조금 헷갈렸다.


Code

import java.util.Arrays;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        int count = 0; // divisor로 나누어 떨어지는 요소의 개수를 세기 위한 변수
        
        // 첫 번째 반복문: 나누어 떨어지는 숫자의 개수 세기
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] % divisor == 0) { // 나누어 떨어지는 경우
                count++; // 개수 증가
            }
        }
            
        if(count == 0) {
            // 나누어 떨어지는 숫자가 없을 경우, -1을 원소로 가지는 배열 반환
            return new int[] {-1};
        }
        
        // 결과 배열 선언 (크기는 나누어 떨어지는 숫자의 개수만큼)
        int[] answer = new int[count];
        
        int index = 0; // answer 배열에 값을 넣기 위한 인덱스
        
        // 두 번째 반복문: 실제로 나누어 떨어지는 숫자를 answer 배열에 담음
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % divisor == 0) { // 나누어 떨어지면
                answer[index++] = arr[i]; // 배열에 저장하고 인덱스 증가
            }
        }
        
        // 결과 배열을 오름차순으로 정렬
        Arrays.sort(answer);
        
        return answer;
    }
}

출처

https://sigfriede.tistory.com/91

 

[프로그래머스 코딩테스트] 나누어 떨어지는 숫자 배열(Java)

문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담

sigfriede.tistory.com

https://goodmorning-sun.tistory.com/30

 

[프로그래머스] 나누어 떨어지는 숫자 배열 - Jav

나누어 떨어지는 숫자 배열 - Java Description array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element

goodmorning-sun.tistory.com