Question
https://school.programmers.co.kr/learn/courses/30/lessons/12934
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Algorithm
- 먼저, 주어진 숫자 n의 제곱근을 구해서 정수로 변환한 뒤, 다시 제곱했을 때 원래 숫자 n과 같은지 확인한다.
- n이 어떤 정수 x의 제곱이 맞다면, x + 1을 제곱한 값을 반환하다.
Code
class Solution {
public long solution(long n) {
// n의 양의 제곱근^2 한 값이 n과 같다면 (정확한 정수의 제곱이 맞다면)
if(Math.pow((int)Math.sqrt(n), 2) == n) {
// (x + 1)의 제곱한 값을 반환
return (long)Math.pow(Math.sqrt(n) + 1, 2);
}
return -1;
}
}
- Math.pow(double a, double b)
1
- 밑 a와 지수 b를 받아 a^b를 계산하여 double로 반환합니다.
- Math.sqrt(double a) 2
- 인자로 받은 a의 양의 제곱근(√a)을 계산해 double로 반환합니다.
출처
[Java] 프로그래머스 정수 제곱근 판별 자바
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12934 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁
psip31.tistory.com
주석 출처
'Coding Test > [프로그래머스] Java' 카테고리의 다른 글
[프로그래머스 / Java] Lv.2 연속 부분 수열 합의 개수 (0) | 2025.06.17 |
---|---|
[프로그래머스 / Java] Lv.1 없는 숫자 더하기 (0) | 2025.06.16 |
[프로그래머스 / Java] Lv.1 가장 가까운 같은 글자 (1) | 2025.06.14 |
[프로그래머스 / Java] Lv.1 이상한 문자 만들기 (0) | 2025.06.13 |
[프로그래머스 / Java] Lv.2 뒤에 있는 큰 수 찾기 (1) | 2025.06.12 |