코린이의 소소한 공부노트

[프로그래머스/Lv.1] 정수 제곱근 판별 본문

코딩테스트 풀이/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) n1이상, 50,000,000,000,000 이하인 양의 정수

2) 반환 타입은 long

 

4. Example

Input: n=121 -> Output: 144

Input: n=3 -> Output: -1

설명:

- 12111의 제곱이므로 (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번 코드보다 미세하게 빠름