풀이법
n이 양의 정수 x의 제곱인지 아닌지 판별하여 제곱이라면 x+1의 제곱을 반환한다.
제곱인지 아닌지 찾기 위해서 for문을 돌려서 판별해 보았지만 테스트 케이스에서 틀린 것이 있었다.
풀이법을 고민하다가 sqrt 와 pow 를 사용하여 문제를 풀면 쉽게 풀린다는 것을 알게 되었다.
정답 코드
class Solution {
public long solution(long n) {
//sqrt를 사용하여 제곱근으로 바꾸고
//pow로 제곱을 했을 때 n이면 n+1의 제곱 리턴
if(Math.pow((int)Math.sqrt(n), 2) == n) {
return (long)Math.pow(Math.sqrt(n)+1, 2);
}
return -1;
}
}
sqrt와 pow를 적절하게 사용하면 쉽게 풀리는 문제였다.
Math 메소드 익히기 괜찮은 문제같다.
'알고리즘 > Programmers' 카테고리의 다른 글
[프로그래머스] Java Level 1. 두 정수 사이의 합 (0) | 2023.05.25 |
---|---|
[프로그래머스] Java Level 1. 하샤드 수 (0) | 2023.05.25 |
[프로그래머스] Java Level 1. 정수 내림차순으로 배치하기 (0) | 2023.05.25 |
[프로그래머스] Java Level1. 문자열을 정수로 바꾸기 (0) | 2023.05.20 |
[프로그래머스] Java Level1. 자연수 뒤집어 배열로 만들기 (0) | 2023.05.20 |