LV1. 정수 제곱근 판별

❔ 문제

❗ 내 풀이

class Solution {
    public long solution(long n) {
        long answer = 0;

        for(long i=0;i*i<=n;i++){
            if(i*i==n){
                answer =(i+1)*(i+1);
            }else{
                answer =-1;
            }
        }
        return answer;
    }
}

🚩참고 (다른 풀이)


1. 
import java.util.*;

class Solution {
  public long solution(long n) {
      long answer = 0;
      int calc = (int)Math.sqrt(n);		//Math.sqrt(n) : n의 제곱근 반환
      answer = ((long)Math.pow(calc, 2)==n)?(long)Math.pow(calc+1, 2):-1;	// Math.pow(x,y) : x의 y제곱 반환
      return answer;
  }
}


2.
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;
  }
}

📝 정리

💬 ArrayList 활용해서 풀어낼 수 있다.

✔ Math 함수 숙지하기
✔ Math.sqrt(n) : 제곱근 구하기
✔ Math.pow(n,m) : n의 m승 구하기


좋은 웹페이지 즐겨찾기