본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.1

[프로그래머스 - JAVA] 정수 제곱근 판별

by 코딩하는 흰둥이 2023. 3. 26.

수학 시르다....

 


  • 내 풀이
class Solution {
    public long solution(long n) {
        long answer = 0;
        
        long count = n / 10;
        answer = -1;
        for (long i = 1; i < count; i++) {
            if (i * i == n) {
                answer = (i + 1) * (i + 1);
            }
        }
        
        return answer;
    }
}

위의 코드로 하니 자꾸 실패가 뜬다

아래 코드로 변경 , n은 런타임 오류 였는데 count는 뭐였을까

class Solution {
    public long solution(long n) {
        long answer = 0;
        
        answer = -1;
        for (long i = 0; i*i <= n; i++) {
            if (i * i == n) {
                answer = (i + 1) * (i + 1);
            }
        }
        return answer;
    }
}

 

 

  • 다른 사람 풀이
class Solution {
  public long solution(long n) {
      if (Math.pow((int)Math.sqrt(n), 2) == n) {
            return (long) Math.pow(Math.sqrt(n) + 1, 2);
        }
        return -1;
  }
}
  • Math.sqrt(121) : 121 값의 제곱근을 double 형으로 return 한다 
  • Math.pow(11 , 2) : 11의 2제곱을 계산한다

댓글