카테고리 없음

제곱수 판별하기_programmers_lev00

jju_developer 2022. 12. 2. 02:06
728x90

<코딩 테스트>

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

 

<나의 풀이 과정>

우선 제곱수를 구하는 Math를 생각을 해보았습니다.

Math.sqrt(n); 그러면 나온 값을 double배열에 담아야 데이터 손실을 막을 수 있습니다.

만약 n의 값이144라면, Math.sqrt( 144 ) 을 담은 더블형의 result 는 12가 됩니다.

만약 144 % 12 ==0 이라면 true로 1을 반환하고

144% 12 != 0 이라면 2를 return 하도록 구현하였습니다.

 

 

<나의 풀이 코드>

class Solution {
    public int solution(int n) {
        int answer = 0;
		double result = 0;
		result = Math.sqrt(n);
		if ( n % result == 0) {
			return answer = 1;
		} else {
			return answer = 2;
		}
	}
}

 

 

<다른사람 풀이 1>

class Solution {
    public int solution(int n) {
        if (n % Math.sqrt(n) == 0) {
            return 1;
        } else {
            return 2;
        }
    }
}

<다른사람 풀이 2>

import java.util.*;
import java.math.*;
class Solution {
    public int solution(int n) {
        int answer = 0;
        Double a = Math.sqrt(n);

        if(a == a.intValue())
            return 1;
        else
            return 2;            
    }
}

-> 제곱근의 값과 그 더블형의 소수점을 떼어낸 그 값과 비교하는 방법도 좋은것 같다!

728x90