코딩테스트 풀이/JAVA
[프로그래머스/Lv.1] 정수 제곱근 판별
무지맘
2022. 11. 24. 11:09
1. Input
1) 양의 정수 n
2. Output
1) n이 양의 정수 x의 제곱이라면 x+1의 제곱을 반환
2) n이 제곱수가 아니라면 –1을 반환
3. Constraint
1) n은 1이상, 50,000,000,000,000 이하인 양의 정수
2) 반환 타입은 long
4. Example
Input: n=121 -> Output: 144
Input: n=3 -> Output: -1
설명:
- 121은 11의 제곱이므로 (11+1)의 제곱인 144를 반환
- 3은 제곱수가 아니므로 –1을 반환
5. Code
1) 첫 코드(2022/??)
long answer = -1;
long x = 1;
long x_exp = x*x;
while(true){
if(x_exp > n) break;
else if(x_exp == n) {
answer = (x+1)*(x+1);
break;
}
x++;
x_exp = x*x;
}
return answer;
2) 변수 x_exp를 없앤 코드(2022/11/24)
long answer = -1;
long i = 0;
while(true){
if(i*i > n) break;
else if(i*i == n){
answer = (i+1)*(i+1); break;
}
else i++;
}
return answer;
- 1번 코드보다 미세하게 빠름