[코딩테스트연습] 코딩테스트 입문 > Lv.0 제곱수 판별하기
2024. 3. 21. 10:24ㆍ코딩 테스트/[프로그래머스] Java
문제 설명
문제 풀이
class Solution {
public int solution(int n) {
int answer = 0;
String num = Integer.parseInt(Math.sqrt(n));
System.out.println(num);
return answer;
}
}
가장 먼저 떠오른 생각은 Math.sqrt()였다. 이를 이용하면 루트를 씌운 기능이기 때문이다.
소수점이 존재하는지 안하는지 보기 위해 문자열로 바꿔서 출력해보고자 하였다.
근데 막상 출력하고 보니까 어떻게 처리해야할 지 모르겠는 것이다..!!!!!!!!
그래서 그냥 int로 형변환해서 그걸 다시 제곱한 후 n과 같은지 다른지 보기로 했다.
class Solution {
public int solution(int n) {
int answer = 0;
int sqrt = (int)Math.sqrt(n);
if(n == sqrt*sqrt) answer = 1;
else answer = 2;
return answer;
}
}
2개의 테스트에는 성공했다.
조금 더 깔끔하게 정리해보았다.
class Solution {
public int solution(int n) {
int answer = 0;
int sqrt = (int)Math.sqrt(n);
answer = (n == sqrt*sqrt) ? 1 : 2;
return answer;
}
}
다른 사람의 풀이를 보다가,
그냥 n을 sqrt한 값으로 % 연산을 해서 판단할 수도 있었다!
다양한 수학적 아이디어들이 넘쳐났다 오늘도...^.^
'코딩 테스트 > [프로그래머스] Java' 카테고리의 다른 글
[코딩테스트연습] 코딩테스트 입문 > Lv.0 n의 배수 고르기 (0) | 2024.03.23 |
---|---|
[코딩테스트연습] 코딩테스트 입문 > Lv.0 숨어있는 숫자의 덧셈 (1) (0) | 2024.03.21 |
[코딩테스트연습] 코딩데스트 입문 > Lv.0 모음 제거 (0) | 2024.03.21 |
[코딩테스트연습] 코딩데스트 입문 > Lv.0 문자 반복 출력하기 (0) | 2024.03.21 |
[코딩테스트연습] 코딩테스트 입문 > Lv.0 순서쌍의 개수 (0) | 2024.03.18 |