반응형
1. 문제 설명
- 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
- n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
2. 제한 사항
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
3. 입출력 예
n | return |
121 | 144 |
3 | -1 |
4. 문제 풀이 코드
class Solution {
public long solution(long n) {
long answer = -1;
for( long i = 1; i <= n; i++ ) {
if( i * i == n ) {
answer = (i + 1) * (i + 1);
break;
}
}
return answer;
}
}
- Math 클래스를 이용하여 푸는 방법이 있지만, 문제의 흐름 대로 코드를 작성해보았습니다.
- 먼저 조건에 맞지 않으면 -1을 반환해야 하기 때문에 answer 초기값을 -1로 넣었습니다.
- 그리고 1부터 n까지의 숫자들을 검토하면서 제곱근을 판별했습니다.
- i * i가 n이라면 답은 (i + 1) * (i + 1)이 됩니다.
이상으로 프로그래머스 Level 1. 정수 제곱근 판별 문제를 JAVA 언어로 풀어보았습니다.
반응형
'Web Developer's Story > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] Level 1. 핸드폰 번호 가리기 (JAVA) (0) | 2020.08.21 |
---|---|
[프로그래머스] Level 1. 시저 암호 (JAVA) (0) | 2020.08.20 |
[프로그래머스] Level 1. x만큼 간격이 있는 n개의 숫자 (JAVA) (0) | 2020.08.19 |
[프로그래머스] Level 1. 문자열 다루기 기본 (JAVA) (0) | 2020.08.18 |
[프로그래머스] Level 1. 서울에서 김서방 찾기 (JAVA) (0) | 2020.08.17 |