티스토리 뷰

[문제]

출처 : https://school.programmers.co.kr


[해설]

- 내 풀이

- Math.sqrt 자체를 몰랐기에 아래와 같이 풀었다.

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 0; i < n; i++){
            if(i * i == n) {
               answer = 1;
               break;
            }
        }
        answer = answer == 1 ? answer : 2;
        return answer;
    }
}

- 다른 사람 풀이 참고

1.

- 굳이 반복문을 사용할거면 아래와 같이 범위를 정하는게 컴퓨터에 덜 부담을 줄 것 같다.

(문제에서 1 ≤ n ≤ 1,000,000 라고 범위를 지정해줬으니까)

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 1; i <= 1000; i++) {
            if(i * i == n) {
               answer = 1;
            }
        }
        answer = answer == 1 ? answer : 2;
        return answer;
    }
}

2. Math.sqrt 사용

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

https://coding-factory.tistory.com/532

 

[Java] 자바 제곱근(루트) 구하기 Math.sqrt()

자바에서 특정값의 제곱근(루트)을 구하려면 java.lang.Math 클래스의 sqrt()메소드를 사용하면 됩니다. java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있습니다. Math 클래스가

coding-factory.tistory.com

https://doompok.tistory.com/7

 

자바[JAVA]: 제곱과 제곱근(루트) 구하기 Math.pow() // Math.sqrt()

- java.lang.math클래스 Math클래스는 수학에서 배운 함수나 상수들을 구현해놓은 클래스. Math클래스의 모든 메소드는 정적 메소드(static method)이므로 바로 사용할수 있다. 그중 특정 수에 대한 거듭제

doompok.tistory.com

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
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
글 보관함