TIL(20240510) 코딩테스트 : 정수 제곱근 판별
TIL(20240510) 코딩테스트 : 정수 제곱근 판별
🔒 문제
- 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
💡 필요했던 메서드
- Math.pow(double a, double b) -> a의 b승 a를 b번 곱한 값을 리턴한다. ** 형변환 가능 예를들어 (int)Math.pow(2.3, 2)
- Math.sqrt(double a) -> a의 제곱근을 반환한다.
🔓 문제풀이
1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public long solution(long n) {
long answer = 0;
long x = (long)Math.sqrt(n); // n의 제곱근 구하기 위해 타입변환
if(n == Math.pow(x,2)){ // 제곱근x의 2승이 n과 같다면
answer = (long)Math.pow(x+1,2); // answer은 제곱근 +1 의 2승이다.
} else {
answer = -1;
}
return answer;
}
}
🤷♀️ 문제풀이를 하면서 느낀점
: 사실 문제를 어떻게 풀어야 할 지 막막했다. 그래서 결론은 내가 풀지는 못했다. 최대한 다른사람의 풀이를 보지 않으려고 노력하고 내가 할 수 있는 부분까지는 혼자서 하고 나머지는.. 다른사람의 풀이를 참고하여 수정하고 제출했다. 새로운 메서드에서 대해서 알게되었고, (Math.sqrt()와 Math.pow()메서드) 다음 기회에 비슷한 문제를 만난다면 내가 풀어볼 수 있을 것 같다.
This post is licensed under CC BY 4.0 by the author.