CODING/CS, 알고리즘, 자료구조 공부
[프로그래머스] 정수 제곱근 판별
codingTrip
2025. 6. 20. 13:01
나의 풀이
class Solution {
public long solution(long n) {
long answer = 0;
long i = 1;
while (i <= n) {
if (Math.pow(i, 2) == n) {
answer = (i + 1) * (i + 1);
break;
}
i++;
}
if (answer == 0) {
answer = -1;
}
return answer;
}
}
while문을 사용해서 문제를 풀었다.
트러블슈팅
while (i < n/2) {
...
}
while문의 조건을 위와 같이 설정했더니
i가 1일 경우에는 동작하지 않게 되었다.
다른 사람의 풀이
class Solution {
public long solution(long n) {
if (Math.pow((int)Math.sqrt(n), 2) == n) {
return (long) Math.pow(Math.sqrt(n) + 1, 2);
}
return -1;
}
}
깔끔하게 코드를 작성하신 점이 부럽다.
나는 answer 변수에 값을 저장하는 것에 집중했는데
answer 변수 없이 바로 return하는 것이 더 깔끔한 것 같다.
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12934/solution_groups?language=java