TIL/kotlin 알고리즘

프로그래머스 lv1 정수 제곱근 판별

crablo 2024. 1. 24. 22:51
728x90

결론적으로 제곱근이 양의 정수이면 제곱을 리턴하고, 정수가 아니면 -1 을 리턴하라는 소리인데..

너무 복잡하게 생각해서 sqrt(Double 혹은 Float ) 함수를 이용했다.

그 후 그 제곱근이 정수인지 확인하기위해 루트를 제곱한값이 정수와 같은지 확인하는 작업까지 해서

코드가 아래와 같아졌다.

생각이 너무 길어진거 같아서 다른 사람의 풀이를 보았는데

아주 간단한 코드를 봤다.

굳이 함수를 쓰지 않아도 단 몇줄에 완성된 코드이다.

class Solution {
   fun solution(n: Long): Long {
        for (i in 0..n) {
            if (i * i == n) {
                return ((i + 1) * (i + 1))
            }
        }
        return -1
    }
}

 

굉장히 깔끔하다.

코드를 설명해보자면 이런것인데

정수 0부터 n까지 수(i) 가 제곱했을때의 결과가 n과 같다면

제곱을 리턴한다는 말이다.

앞으로 코드를 줄이기위해 단순히 생각해야겠다.

 

728x90