IT/Programmers

[Programmers/코딩테스트 연습] 주사위의 개수, 합성수 찾기 Java

안선생 Dr.Ahn 2022. 12. 10. 00:52
728x90
반응형

주사위의 개수 (Java)

class Solution {
    public int solution(int[] box, int n) {
        int answer = 0;
        
        answer = (box[0]/n) * (box[1]/n) * (box[2]/n);
        return answer;
    }
}

Q. 저거 나눌때마다 앞에 (int)로 강제 형변환이 필요한가?

 

 

합성수 찾기 (Java)

class Solution {
    public int solution(int n) {
        int answer = 0;
        if (n < 3) answer = 0;
        else {
            for(int i = 3; i < n+1; i++) {
                for(int j = 2; j < i; j++) {
                    if(i%j == 0) {
                        answer++;
                        break;
                    }
                }
            }
        }
        
        return answer;
    }
}

복잡시럽다...  

 

#IntStream #forlooptoIntStream #streamfilter #filter() #count()

import java.util.stream.IntStream;

class Solution {
    public int solution(int n) {
        int answer = 0;
        answer = (int) IntStream.rangeClosed(1, n)
        	.filter(i -> (int) IntStream.rangeClosed(1, i).filter(j -> i % j == 0).count() > 2)
        	.count(); 
        return answer;
    }
}

1. (int) IntStream.rangeClosed(1, n) : 첫번째 for문 내용

2. filter(i -> (int) IntStream.rangeClosed(1, i) : 두번째 for문 내용

3. .filter(j -> i%j == 0) : if문

4. .count() > 2 : i%j == 0 filter에 걸린 갯수가 3 이상인 경우

5. .count() : 4의 개수 세기.

 

앞에 강제 형변환(int)를 쓰는 경우를 아직도 명확히 구분하지 못하고 있다.

알고싶구나..

728x90
반응형