본문 바로가기
Algorithm/Programmers

정수 제곱근 판별

by 동그란 혜주 2019. 5. 31.

· 문제 설명

임의의 정수 n에 대해, n이 어떤 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

 

· 제한 사항

n은 1이상, 50000000000000 이하인 정수입니다.

 

· 입출력 예

n return
121 144
3 -1

 

· 입출력 예

입출력 예#1
121은 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.
입출력 예#2
3은 정수의 제곱이 아니므로, -1을 리턴합니다.


· Thinking 1

1. sqrt 제곱근 사용해서 정수 판별


· 완성 코드 1

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

· 완성 코드 2

class Solution {
  public long solution(long n) {
      return (Math.sqrt((double) n) % 1 == 0) ? (long) Math.pow(Math.sqrt((double) n)+1, 2) : -1 ;	
  }
}

- 삼항연산자 사용.. 헤헹 ㅎㅎ;


· 문제 출처

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

 

알고리즘 연습 - 정수 제곱근 판별 | 프로그래머스

임의의 정수 n에 대해, n이 어떤 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 정수입니다. 입출력 예 n return 121 144 3 -1 입출력 예 설명 입출력 예#1 121은 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 정수의

programmers.co.kr

 

'Algorithm > Programmers' 카테고리의 다른 글

직사각형 별찍기  (0) 2019.05.31
제일 작은 수 제거하기  (0) 2019.05.31
정수 내림차순으로 배치하기  (0) 2019.05.31
자연수 뒤집어 배열로 만들기  (0) 2019.05.31
자릿수 더하기  (0) 2019.05.31

댓글