개발 공부/코딩테스트 연습

[프로그래머스 입문][자바] 제곱수 판별하기

빵다희 2024. 11. 21. 22:55

❓문제설명

https://school.programmers.co.kr/learn/courses/30/lessons/120909

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

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


제한사항

  • 1 ≤ n ≤ 1,000,000

입출력 예

n result
144 1
976 2

 


 

입출력 예 #1

  • 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.

입출력 예 #2

  • 976은 제곱수가 아닙니다. 따라서 2를 return합니다.

🔍문제해석

어떤걸 풀어야 할까?

  • 어떤 자연수를 제곱했을 때 나오는 결과가 제곱수라고 하는데, 주어진 수가 제곱수인지 구해라
  • 자연수란 == 양의 정수

🧐문제풀이

  • 문제 풀이 구상

Math 클래스에 제곱근을 구하는 함수가 있던걸로 기억한다.

그걸 주어진 수, n에 적용하여 나온 결과가 정수인지 확인하여 정수면 1 응답, 아니면 2를 응답하자.

  • 알고리즘 선택

Math.sqrt()

: 인자의 제곱근을 구하는 메소드이다. 

 


!제출코드

  1. Math.sqrt를 사용하여 n의 제곱근을 구한다.
  2. d를 1로 나눈 나머지가 0이라면 정수이고 아니면 정수가 아니다. 
class Solution {
    public int solution(int n) {
        (1)
        double d = Math.sqrt(n);
        (2)
        return (d % 1 == 0) ? 1 : 2;
    }
}
728x90
반응형