다오의 개발일지

프로그래머스 LV.0 합성 수 찾기 본문

코딩테스트

프로그래머스 LV.0 합성 수 찾기

다오__ 2023. 5. 26. 11:39

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

 

프로그래머스

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

programmers.co.kr

 

파라미터 정수 n까지의 숫자들 중 합성수의 개수를 찾는 문제이다.

시도한 절차는 아래와 같다.

    1. int 배열을 만들어 숫자 하나씩 넣기  
    2. 각 수마다의 공약수 찾기  
    3. 공약수 갯수가 3개 이상이면 카운트증가

결과코드

 class Solution {
    public int solution(int n) {
        //int 배열에 숫자 하나씩 넣기
        //각 수마다의 공약수 찾기
        //공약수 갯수가 3개 이상이면 카운트증가

        int[] intArr = new int[n];
        int[] cntArr = new int[n];
        int answer = 0;
        for(int i=0; i<n; i++){
            intArr[i] = i+1;
            // System.out.println(intArr[i]);
        }

        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                if(intArr[i] % (j+1) == 0){
                    cntArr[i]++;
                }
            } //System.out.println(cntArr[i]);
        }
        for(int cnt:cntArr){
            if(cnt >= 3)
                answer++;
        }

        return answer;
    }


}