순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
풀이 1) 시간초과
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i<=n;i++){
for(int j=1; j<=n;j++){
if(i*j==n){
answer++;
}
}
}
return answer;
}
}
풀이 2) 절반 계산
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i*i<=n;i++){
// 같은 값일땐 뒤집어도 같으므로 1로 더함
if(i*i==n){
answer++;
// [1,20]구한 값을 곱하기 2함으로 써 [20, 1]갯수도 포함
} else if (n%i==0){
answer+=2;
}
}
return answer;
}
}
'programmers' 카테고리의 다른 글
[JAVA] ★ 구슬을 나누는 경우의 수 (0) | 2024.03.12 |
---|---|
[JAVA] 모스부호 (1) spilt() (1) | 2024.03.12 |
[JAVA] 문자열 겹쳐쓰기 toCharArray / substring (0) | 2024.03.11 |
[JAVA] 배열 자르기 Arrays.copyOfRange (0) | 2024.03.11 |
[JAVA] 대소문자 바꿔서 출력하기 (0) | 2024.03.11 |