
브루트포스로 풀어도 상관없지만,
효율적인 풀이를 위해, n^(1/2) 까지만 반복문을 돌렸다.
왜냐하면 n^(1/2) 이후의 약수들은, 그 이전의 약수와 순서쌍으로 이어져서 순서만 바꿔주면 되기 때문.
주의할 점은, 제곱수는 순서쌍이 똑같아 1개만 추가해줘야한다는 점이다.
class Solution {
public int solution(int n) {
int answer = 0;
for (int i=1; i<=Math.sqrt(n); i++) {
if (i==Math.sqrt(n)) {
answer+=1;
} else if (n%i==0) {
answer+=2;
}
}
return answer;
}
}'프로그래머스 문제풀이 > Level 0' 카테고리의 다른 글
| 최빈값 구하기 (자바, Java) (0) | 2022.11.26 |
|---|---|
| 피자 나눠 먹기 (2) (자바, Java) (0) | 2022.11.26 |
| n의 배수 고르기 (자바, Java) (0) | 2022.11.26 |
| 숨어있는숫자의덧셈(1) (자바, Java) (0) | 2022.11.26 |
| 자릿수 더하기 (자바, Java) (0) | 2022.11.26 |