TIL(사전캠프)

알고리즘 코드카타. 정수 제곱근 판별(2024-06-13)

note994 2024. 6. 13. 15:33

문제 개요

문제 요약 : 정수n을 받고 n의 제곱근이 양의 정수라면 그 제곱근을+1한 뒤, 제곱을 해서 반환한다.

 

제곱근이 양의 정수가 아닌경우 -1을 반환한다.

 


풀이 및 설명)

나의 풀이

먼저 제곱근을 담을 x 변수를 선언한다. (아직까진 제곱근값을 담지 않았다.)

 

그리고 n의 제곱근이 양의 정수인지 판별한다. 아니라고 판단되면 바로 -1을 반환하고 종료한다.

 

양의 정수가 맞다면 x에 제곱근을 담는다. 그 후 1을 더하고 제곱을하여 반환한다.

 

처음부터 x에 제곱근 값을 넣지 않는 이유는 Math.sqrt는 double 형으로 반환해준다. 즉 long타입인 x에 넣으려면 형변환을 해줘야하는데 그렇게되면 소수점이 잘려나가서 이것이 정수인지 판별이 불가능해지기 때문이다.

 

이후 제곱근이 정수인지 아닌지 판별 후 정수가 맞다고 판단이 된다면 형변환을 해도 괜찮기때문에 이후에 x에 제곱근값을 넣어준것이다.