Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - n의 배수 고르기 (자바/Jva) 본문

알고리즘문제/프로그래머스(Java)

[프로그래머스] - n의 배수 고르기 (자바/Jva)

luke-king 2024. 9. 1. 22:42

 

 

 

 

 

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/120905

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


 

class Solution {
    public int[] solution(int n, int[] numlist) {
        int cnt = 0;
        for(int i = 0; i < numlist.length; i++){
            if(numlist[i] % n == 0){
                cnt++;
            }
        }
        
        int[] answer = new int[cnt];
        int num = 0;
        for(int i = 0; i < numlist.length; i++){
            if(numlist[i] % n == 0){
                answer[num] = numlist[i];
                num++;
            }
        }
        
        return answer;
    }
}

 

이번 문제는 프로그래머스의 "n의 배수 고르기" 문제다.

문제는 어려움이 없는 문제라 생각이 들어 바로 풀이를 해보겠다.

 

1. answer의 사이즈를 지정해 주기 위해 cnt 변수를 만들어 3의 배수의 조건에 충족되면 cnt를 1씩 증가시켜준다.

 

2. 그럼 answer 사이즈는 배수들의 값만큼 증가했기에 cnt에는 어느 숫자가 들어와도 조건에 맞는 배수의 개수 수가 나온다.

 

3. 그렇게 answer의 사이즈를 정해줬으면 본격적으로 값을 구해 배열에 담기 위해 num의 숫자형 변수를 만들어준다.

 

4. 다시 위의 조건과 같이 배수들의 값들이 맞는 조건에 충족하면 answer배열에 값을 넣어준다. 여기서 num은 0 이기에 

answer 배열에 0부터 시작하고 그다음 조건에 맞을 때마다  num을 1씩 증가시켜 answer 사이즈와 같게 만들어 Exception이 안 나오게 해 준다. 그럼 끝이다.