문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12934
C++ 풀이
#include <string>
#include <vector>
#include <cmath>
using namespace std;
long long solution(long long n) {
if (sqrt(n) - (int)sqrt(n) == 0) // n이 정수의 제곱인 경우
return (sqrt(n) + 1) * (sqrt(n) + 1);
return -1;
}
n이 양의 정수의 제곱일 경우, (double형)n의 제곱근 - (int형)n의 제곱근의 값은 0인 조건을 활용하였다.
만약 n이 정수가 아닌 실수의 제곱일 경우 n의 제곱근(double형)은 소수점 아래 수를 갖기 때문이다.
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[프로그래머스] 하샤드 수 (0) | 2020.04.26 |
---|---|
[프로그래머스] 징검다리 건너기 (0) | 2020.04.23 |
[프로그래머스] 이상한 문자 만들기 (0) | 2020.04.21 |
[프로그래머스] 호텔 방 배정 (0) | 2020.04.21 |
[프로그래머스] 주식가격 (0) | 2020.04.17 |