문제
나의 생각
초반에 접근한 방식으로는 2중 for문으로 하면되겠다고 접근하였음.
하지만 Big O 가 통과하지 못하는 현상을 보고 이거 잘 못된 코드라고 판단.
다시 생각해보면 약수를 수하면 나오는 갯수와 같다고 판단.
나의 답안
public static int solution(int n) {
int answer = 0;
for(int i =1 ; i <= n ; i ++){
if (n % i == 0){
answer++;
}
}
return answer;
}
다른 답안
다른분은 IntStream을 사용하여서 처리 하였는데, 다음에는 해당 방식으로도 처리를 해보도록 하겠다.
import java.util.stream.IntStream;
class Solution {
public int solution(int n) {
return (int) IntStream.rangeClosed(1, n).filter(i -> n % i == 0).count();
}
}