알고리즘 (JAVA)/프로그래머스 알고리즘

[프로그래머스] level1. 정수 제곱근 판별 - 개발자 배찌

개발자 배찌 2022. 5. 12. 16:50
728x90

 

풀이과정 1. ->시간초과..

일단 생각한것은 n의 제곱근이므로, x * x = n

x를 구해야한다...? 그럼 어떻게해야할까.....  생각하다가 if 문에 조건을 걸어주었다..

결과는 시/간/초/과

 

class Solution {
    public long solution(long n) {

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

 

풀이과정2.

다른사람의 코드를 참고하였다😐 (반성하자...)

아니!!!! 

제곱근을 구하는 함수가 따로 있었던것이였다.......

 

  • pow : 거듭제곱을 계산해주는 함수
    • Math.pow(숫자, 거듭제곱 횟수);
  • sqrt : 제곱근을 구해주는 함수
    • Math.sqrt(숫자);

 

class Solution {
    public long solution(long n) {
        long answer = 0;
        long x = (long)Math.sqrt(n);
        
        if(n == Math.pow(x,2)){
            answer = (long)Math.pow(x+1, 2);
        } else {
            answer = -1;
        }
        
        return answer;
    }
}

 

풀이과정3. 

다른사람의 코드를 참고하면서 생소한 부분이 보였다.

class Solution {
    public long solution(long n) {
       
        long answer = 0;
        Double x = Math.sqrt(n);
        
        if(x == x.intValue()){
            answer = (long)Math.pow(x+1, 2);
        } else {
            answer = -1;
        }
        
        return answer;
    }
}

x.intValue() ????

Integer형을 int형으로 변환하는것

Integer.parseInt() 이거랑은 약간 다른 개념..!

 

참고사이트

https://java119.tistory.com/30

 

[Java] parseInt()와 intValue()

오늘은 Java parseInt() && intValue() 개 (개념) 이 (사용 이유) 문 (문법 및 예시) 시작하겠습니다 . parseInt() 개념 static 이다, 그러므로 Integer 생성안하고 parameter만 넣어주면 메소드를 수..

java119.tistory.com