임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인 지 판단해야 한다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, 아니면 -1을 리턴하는 함수를 작성하는 문제이다.
C++의 <cmath> 헤더에서 제공하는 sqrt, pow 함수를 사용하면 쉽게 풀 수 있다.
#include <string>
#include <vector>
//sqrt 와 pow 사용을 위해 추가
#include <cmath>
using namespace std;
long long solution(long long n) {
long long answer = 0;
// 입력받은 숫자 n 에 루트를 씌워서 계산한 값을 반환해 주는 함수
// 즉 n의 제곱근을 구해줌
long long temp = sqrt(n);
// n이 어떤 숫자 x 의 제곱근인 경우, x+1의 제곱을 구함
if(temp * temp == n)
{
// pow(input, num) : input 의 num 제곱을 구하는 함수
answer = pow(temp+1,2);
}
else
{
answer = -1;
}
return answer;
}
'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 최대공약수와 최소공배수 (0) | 2021.01.09 |
---|---|
[프로그래머스] 제일 작은 수 제거하기 (0) | 2021.01.09 |
[프로그래머스] 평균 구하기 (0) | 2021.01.08 |
[프로그래머스] 짝수와 홀수 (0) | 2021.01.05 |
[프로그래머스] 시저 암호 (0) | 2021.01.03 |