https://school.programmers.co.kr/learn/courses/30/lessons/120909
class Solution {
public int solution(int n) {
return (int)Math.sqrt(n)*(int)Math.sqrt(n) == n ? 1 : 2;
}
}
- 제곱근 구하는 Math.sqrt( )는 알고 있어서 제곱근을 구하는 메서드를 사용했다.
- double형으로 나오기 때문에 처음에는 소숫점 첫째자리 수가 0인 것으로 구분해서 0이면 1이고 아니면 2인 것으로 생각했다.
- 하지만 그런 메서드가 없었어서...
- 제곱급 한 것을 다시 한 번 더 곱했을 때 n이 나오면 제곱근인 것으로 대체했다!
다른 사람 풀이
class Solution {
public int solution(int n) {
return Math.sqrt(n) % 1 == 0 ? 1 : 2;
}
}
- Math.sqrt(n)%1 를 하면 제곱근이 있는 수 들은 0.0이 나온다.
- 나눗셈으로 하는 방법도 간단한 것 같다..!
'algorithm > Programmers' 카테고리의 다른 글
[JAVA] 최댓값 만들기(2) (0) | 2023.03.20 |
---|---|
[JAVA] n의 배수 고르기 (0) | 2023.03.19 |
[JAVA] 문자열 안에 문자열 (0) | 2023.03.15 |
[JAVA] 문자열 계산하기 (0) | 2023.03.09 |
한 번만 등장한 문자 (0) | 2023.03.07 |