문제 출처 - Programmers
문제는 여기
[풀이]
1. i를 0부터 i * i가 n이하가 될 때까지 반복해서 i * i가 n인지 판단한다.
2. 맞다면 (i + 1)의 제곱을 answer에 넣어준다.
3. 만약 answer의 값이 0이라면 위에서 못 구한 것이므로 -1로 리턴을 해주고 아니라면 answer을 리턴해준다.
[접근]
1. 제곱을 한 것이 n인지 확인하고 원하는 결과를 출력해주면 되겠다고 생각하였다.
[코드]
class Solution {
public long solution(long n) {
long answer = 0;
for (long i = 0; i * i <= n; i++) {
// 제곱이 n이라면
if (i * i == n)
// i + 1의 제곱을 넣어줌
answer = (i + 1) * (i + 1);
}
// 값이 들어가있지 않으면 -1을 리턴, 있다면 answer 리턴
return answer == 0 ? -1 : answer;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 하샤드 수 (JAVA) (0) | 2022.05.26 |
---|---|
[프로그래머스] 소수 찾기 (JAVA) (0) | 2022.05.25 |
[프로그래머스] 약수의 합 (JAVA) (0) | 2022.05.23 |
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2022.05.22 |
[프로그래머스] 등굣길 (JAVA) (0) | 2022.05.20 |