[Programmers/코딩테스트 연습] 주사위의 개수, 합성수 찾기 Java
2022. 12. 10. 00:52ㆍIT/Programmers
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
반응형
'IT > Programmers' 카테고리의 다른 글
[Programmers/코딩테스트 연습] 모음제거 , 문자열 정렬Java (0) | 2022.12.13 |
---|---|
[Programmers/코딩테스트 연습] 최댓값, 팩토리얼 Java (0) | 2022.12.11 |
[Programmers/코딩테스트 연습] 배열회전 Java (0) | 2022.12.09 |
[Programmers/코딩테스트 입문] 점의 위치, 1차원 배열 2차원 배열로 만들기 Java *새롭게 생각하기* (2) | 2022.12.08 |
[Programmers/코딩테스트 연습] 가위바위보, 조합(순서 없는 경우의 수) Java (stream, map, Colloctors, nCr) ***** (0) | 2022.12.06 |