티스토리 뷰

반응형

Using Language : Java
Using Tool : Eclipse


  • 프로그래머스 문제 소개

< 정수 제곱근 판별 >

문제 설명

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

제한 조건

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

예시

	n		return 
	121		144 
	3		-1

의사코드

  1. double 형태의 변수를 선언하고 Math함수를 이용해서 n의 제곱근 저장
  2. double형 변수를 int로 변형해서 int 변수에 넣어준다.
  3. int 변수와 double형 변수를 비교해서 값이 같으면 나머지가 없이 나누어 떨어지는 제곱근이다.
  4. 삼항 연산자를 이용해서 값 return

<Solution18.java>

package level1;

public class Solution18 {

	public long solution(long n) {
		double a = 0;
		a = Math.sqrt(n);
		
		int b = (int)a;

		// 삼항 연산자 이용
		return b==a  ?  (long) Math.pow(a + 1, 2) : -1;
		
	}
}

<Solution18Test.java>

package level1;

import static org.junit.jupiter.api.Assertions.assertEquals;

import org.junit.Test;

public class Solution18Test {
	@Test
	public void 결과() {
		Solution18 solution = new Solution18();
		assertEquals(144, solution.solution(121));
		assertEquals(-1, solution.solution(3));
	}
}

 

github에서 코드 확인하기

 

udud0510/CodeKata

프로그래머스 문제풀이. Contribute to udud0510/CodeKata development by creating an account on GitHub.

github.com

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함