Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Archives
Today
Total
관리 메뉴

KSI일기장

프로그래머스 합성수 찾기(자바) 본문

JavaAlgorithm

프로그래머스 합성수 찾기(자바)

MyDiaryYo 2023. 12. 14. 17:00

 

 

 

 

 

class Solution {
    public int solution(int n) {
        int answer = 0;
         for (int i=1; i<=n; i++) {	//1~n까지의 숫자(i)를 각 하나씩 접근
            int a = 0;
            for (int j=1; j<=i; j++){	//1~n까지의 숫자 중 각 해당 숫자 이하의 숫자(j)를 하나씩 접근
                if (i%j==0){			//n이하의 숫자의 약수인 경우
                    a++;			//a(약수의 개수)를 +1씩 증가
                    if (a>=3){			//약수가 3개 이상인 경우 (a가 3이상인 경우)
                        answer++;		//answer +1씩 증가
                        break;
                    }
                }
            }
        }
        return answer;
    }
}

 

풀이 시 발생했던 문제

: a초기화 구문이 answer초기화 구문 아래 있었는데 원하는 결과가 나오지 않았다.

 a를 증가시켜주는 부분(a++)에서 if조건 충족 후 a가 증가하고 나서 초기화가 되지 않아

 다음 if조건 (a>=3)에 계속 충족 되 answer가 원하는 결과보다 훨씬 더 많이 증가한 것이었다.

 

해결방법

: n이하의 숫자(i)의 약수의 개수(a)를 구하고 나서 a를 초기화(int a=0;) 해주었더니 제대로 된 결과가 나왔다.