안녕하세요.
19회차 과제 "정수 제곱근 판별"입니다.
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
풀이
class Solution {
public long solution(long n) {
long answer = 0;
long cnt = 0;
for (long i=2; i<n;i++){
if(i*i == n){
cnt = i+1;
answer = (long)(cnt*cnt);
break;
} else {
answer = -1;
}
}
return answer;
}
}
-. 조금 무식하게 푼 게 아닐까 싶네요.
-. i * i = n 일 경우 i+1을 재곱하고 아닌 경우 -1을 출력합니다.
저처럼 처음해보시는 분들에게 이 글이 조금이나마 도움이 되었으면 좋겠습니다.
'내일배움캠프 > Daily Routine (알고리즘)' 카테고리의 다른 글
[내일배움캠프] 알고리즘 Daily Routine 21. 하샤드 수 (0) | 2024.09.03 |
---|---|
[내일배움캠프] 알고리즘 Daily Routine 20. 정수 내림차순으로 배치하기 (0) | 2024.08.29 |
[내일배움캠프] 알고리즘 Daily Routine 18. 문자열을 정수로 바꾸기 (0) | 2024.08.28 |
[내일배움캠프] 알고리즘 Daily Routine 17. 자연수 뒤집어 배열로 만들기 (0) | 2024.08.28 |
[내일배움캠프] 알고리즘 Daily Routine 16. x만큼 간격이 있는 n개의 숫자 (0) | 2024.08.27 |
댓글