프로그래머스
프로그래머스 순서쌍의 개수 문제풀이
애용이랑떼껄룩
2024. 2. 14. 10:47
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해줌
태클은 환영!
반응형