Contents

순서쌍의 개수(with.Java)

   Jan 3, 2024     1 min read

“순서쌍의 개수” 문제에 대하여 알아본 글입니다.

코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.

문제에 대해 먼저 알아보겠습니다.

문제

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다.

자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.

제한사항

1 ≤ n ≤ 1,000,000

입출력 예시

nresult
206
1009

문제에 대한 나의 풀이

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 1; i <= n; i++){
            if(n % i == 0){
                answer++;
            }
        }
        return answer;
    }
}

풀이 설명

입력: n - 약수의 개수를 계산할 정수.

출력: n의 약수의 개수.

사용된 함수 소개: n % i == 0: 나머지 연산을 통해 i가 n의 약수인지를 확인합니다. 만약 나머지가 0이면 i는 n의 약수입니다.

개선 가능한 점: 성능 개선: 현재 코드는 모든 수에 대해 약수를 확인하므로 성능에 영향을 줄 수 있습니다. 성능을 개선하기 위해 약수는 주어진 수의 제곱근까지만 확인하여도 충분합니다.

코드 모듈화: 함수 내의 기능을 작은 모듈로 나누어 코드의 가독성과 재사용성을 높일 수 있습니다.

수학적 최적화: 약수의 개수는 수학적으로도 풀 수 있는 문제이므로, 더 효율적이고 간결한 알고리즘을 고려할 수 있습니다.