본문 바로가기
📟 Computer science/Algorism

[프로그래머스] Lv.1 정수 제곱근 판별 (자바)

by 깸뽀 2022. 9. 26.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12934

 


💡 Key

- Math.sqrt(숫자) / type - duoble: 제곱근을 구해주는 함수

- Msyh.pow(숫자, 거듭제곱 횟수) / type - duoble: 제곱근을 구해주는 함수

 

 

🔑 Code

<내가 짠 코드>

1
2
3
4
5
6
7
8
9
10
11
12
    public long solution(long n) {
        long answer = 0;
        long squareRoot = (long) Math.sqrt(n); //n의 제곱근을 구함
 
        if(n == Math.pow(squareRoot, 2)) { // 제곱근을 거듭제곱(2회)한 값이 n과 같다면
            answer = (long) Math.pow(squareRoot + 12); // 제곱근+1을 거듭제곱(2회)함
        } else {
            answer = -1// 그 외 -1
        }
 
        return answer;
    }
cs

 

 

<다른 사람이 짠 코드 01 >

: 짧은 버전

1
2
3
4
5
6
7
public long solution(long n) {
      if (Math.pow((int)Math.sqrt(n), 2== n) {
            return (long) Math.pow(Math.sqrt(n) + 12);
        }
 
        return -1;
  }
cs

 

<다른 사람이 짠 코드 02 >

: 삼항연산자 사용

1
2
3
4
5
6
 public long solution(long n) {
 
    double i = Math.sqrt(n);
 
    return Math.floor(i) == i ? (long) Math.pow(i + 12) : -1;
  }
cs
728x90

댓글