[프로그래머스] Java 코딩테스트 Lv.1 - 정수 제곱근 판별

yihyun·2025년 5월 9일

코딩테스트

목록 보기
88/105
post-thumbnail

정수 제곱근 판별

✅ 문제 설명

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

✅ 제한사항

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

🔽 소스코드 1

💻 풀이

  • 주어진 수 n 이 양의 정수 x의 제곱일 경우 제곱근이 정수로 나올 것이고,
  • 제곱이 아닐 경우 소수로 나오므로 이를 활용해 코드를 작성해준다.
  • 제곱근을 1로 나눈 나머지가 0보다 클 경우 소수이므로 -1을 return 해주고,
  • 0일 경우 정수이므로 x+1 의 제곱을 return 해준다.

시간 0.04ms ~ 0.08ms

	public long solution(long n) {
		
		if(Math.sqrt(n) % 1 > 0) {
			return -1;
		}else {
			return (long) ((Math.sqrt(n) + 1) * (Math.sqrt(n) + 1));
		}
		
	}
profile
개발자가 되어보자

0개의 댓글