두 자연수의 곱이 n이 되는 자연수 순서쌍의 개수 구하기
-i의 제곱이 n과 같거나 작을때 까지 구하고
i가 정확히 n의 제곱근인 경우, 구한 answer의 2배에서 1을 빼고 아니면 그냥 2배를 반환하면 된다.
public int solution(int n) {
int answer = 0;
boolean isSquare = false;
for (int i = 1; i * i <= n; i++) {
if (i * i == n)
isSquare = true;
if (n % i == 0) {
answer++;
}
}
answer *= 2;
if (isSquare)
answer--;
return answer;
}
- 다른 사람의 풀이를 보다가 boolean을 선언할 필요가 없어서 조금 개선해보았다.
나중에 2배를 곱하지 않고 처음 answer를 증가시킬때부터 2배로 증가시키고 제곱근인 경우만 1 증가시켰다.
public int solution2(int n) {
int answer = 0;
for (int i = 1; i * i <= n; i++) {
if (i * i == n) answer++;
else if (n % i == 0) {
answer+=2;
}
}
return answer;
}
'Java > Coding Test' 카테고리의 다른 글
문자열 정렬하기(1) 문제풀이 (0) | 2023.09.10 |
---|---|
점의 위치 구하기 문제풀이 (1) | 2023.09.09 |
삼각형의 완성조건 (0) | 2023.09.09 |
배열의 유사도 문제풀 (0) | 2023.09.09 |
문자열 뒤집기 문제풀이 (1) | 2023.09.09 |