약수 개수 파악하는 문제인데, 3분만에 풀고 score 나오는데 10몇분 걸리는 이유가 뭘까...
는 Big1 2 3 에서 타임아웃 났음!
package programmers;
public class CountFactors_230102 {
public static void main(String[] args) {
int N = 24;
System.out.println(solution(N));
}
public static int solution(int N) {
//약수 개수 파악하기
if(N <= 1){
return 1;
}
int answer = 0;
for(int i = 1; i <= N; i++){
if(N % i == 0){
answer++;
}
}
System.out.println(answer);
return answer;
}
}
이렇게 풀면 안되는 것 같아서 고민해본다.
package programmers;
public class CountFactors_230102 {
public static void main(String[] args) {
int N = 24;
System.out.println(solution(N));
}
public static int solution(int N) {
int answer = 0;
long i = 1;
while(i * i < N){
if(N % i == 0){
answer++;
}
i++;
}
answer = answer*2;
if(i * i == N){
answer++;
}
return answer;
}
}
이렇게 풀어야 함!
댓글
댓글 쓰기