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
반응형