알고리즘/Programmers

[프로그래머스] Java Level 1. 정수 제곱근 판별

개발자 정지은 2023. 5. 25. 12:37

풀이법

n이 양의 정수 x의 제곱인지 아닌지 판별하여 제곱이라면 x+1의 제곱을 반환한다.

제곱인지 아닌지 찾기 위해서 for문을 돌려서 판별해 보았지만 테스트 케이스에서 틀린 것이 있었다.

풀이법을 고민하다가 sqrt 와 pow 를 사용하여 문제를 풀면 쉽게 풀린다는 것을 알게 되었다.

 

정답 코드

class Solution {
    public long solution(long n) {
        //sqrt를 사용하여 제곱근으로 바꾸고
        //pow로 제곱을 했을 때 n이면 n+1의 제곱 리턴
        if(Math.pow((int)Math.sqrt(n), 2) == n) {
            return (long)Math.pow(Math.sqrt(n)+1, 2);
        }
        
        return -1;
    }
}

sqrt와 pow를 적절하게 사용하면 쉽게 풀리는 문제였다.

Math 메소드 익히기 괜찮은 문제같다.