본문 바로가기

프로그래머스

프로그래머스 순서쌍의 개수 문제풀이

728x90

문제 설명

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.

제한 사항

  • 1 ≤ n ≤ 1,000,000

입출력 예

n result
20 6
100 9

문제 풀이

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

 

순서쌍은 두수의 곱이 n값이 나오면 되는것인데 i를 n으로 나눈값의 나머지가 0인 개수와 같다.

그러므로 n을i로 나눈 나머지가 0이될때마다 answer을++시켜주면 된다.

다른 풀이

public int solution2(int n) {
    return (int) IntStream.rangeClosed(1,n).filter(i -> n % i == 0).count();
}

 

지난번 짝수의 합 때도 다른풀이에서 사용했던 rangeClosed다 (보고 아차싶음)

1~n까지 중 filter를 마찬가지로 나머지가 0인것들의 개수만 count해줌

 

태클은 환영!

 

 

반응형