자바 초급문제로 맨땅에 해딩하기

자바 초급문제 16. 소수찾기 진행.

Jungsoomin :) 2020. 4. 10. 02:27

프로그래머스(https://programmers.co.kr/learn/courses/30/lessons/12921)
자바 초급 문제의 소수찾기 이다.

 

생각보다 어려운 문제였다고 생각한다. 특히 속도면에서 까다롭다고 생각한다.

 

내 로직은 속도가 적합하지 않다는 판정을 받았는데, 생각을 2~n-1 사이의 수로 나누어지면 소수가 아닌거다. 하고 시작했다.

 

오늘 일어나서 한번 더 부딪쳐봐야겠다. 에라토스테네스의 체..? 라는 공식이있던데 머리가 나빠서.. 잘 이해가 되지않는다..

 

이해해서 코드에 적용해보면 되게 좋을 것같아보이던데..일단 더 봐야겠다.

 

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
package 소수찾기;
 
public class subClass {
    public int solution(int n) {
        int answer = 0;
//소수란 자기자신보다 작은 수보다 나누어지면 소수인 것임.
        
        for(int i=2; i<=n; i++) { //기존수는 n만큼
            boolean check = true;//돌때마다 다시 true값이 되야하고.
            for(int j=2; j<i;j++) {//나눌 수는 i만큼
                if(i%j ==0) {//한번이라도 나누어지면 
                    check = false;//false로 돌리고 break.
                    break;
                }
            }
            if(check == true) {//나누어 봤는대도 true 그래도라면 소수 찾았음.
                answer ++;
            }
        }
        
        
 
        return answer;
    }
}
cs