문제
https://school.programmers.co.kr/learn/courses/30/lessons/120909
문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
풀이
Math.sqrt() 메서드를 활용하여 문제를 풀이했다. 해당 메서드 사용시 반환값이 double타입이므로 제곱수를 확인하기 위해 isInteger() 메서드를 정의하여 판별하였다. 나머지를 활용해 풀이하는 방법도 있고, Math.floor()메서드를 활용해 판별도 가능하다.
코드
class Solution {
public int solution(int n) {
return isInteger(Math.sqrt(n)) ? 1 : 2;
}
boolean isInteger(double n) {
return n % 1 == 0.0;
}
}
위는 나머지를 활용한 정수 판별 방법이다.
int로 변환하여 비교하는 방법
public boolean isInteger(double num) {
return num == (int) num;
}
소수점 버림을 활용해 비교하는 방법
public boolean isInteger(double num) {
return Math.floor(num) == num;
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스/SQL] Lv.1 - 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2025.01.10 |
---|---|
[프로그래머스/SQL] Lv.1 - 과일로 만든 아이스크림 고르기 (0) | 2025.01.10 |
[프로그래머스/SQL] Lv.2 - 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2025.01.09 |
[프로그래머스/Java] Lv.0 - 두 수의 나눗셈 (0) | 2023.09.13 |
[프로그래머스/Java] Lv.0 - 조건에 맞게 수열 변환하기 3 (0) | 2023.09.09 |