Java/Coding Test

순서쌍의 개수 문제풀이

최고다최코딩 2023. 9. 9. 20:09
728x90

두 자연수의 곱이 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;

}