Posts [알고리즘] 프로그래머스 - 정수 제곱근 판별
Post
Cancel

[알고리즘] 프로그래머스 - 정수 제곱근 판별


문제

정수 제곱근 판별


접근

1부터 n까지 올라가며 하나씩 제곱해서 같은지 비교할 수 있다.
좀 더 빠른 방법은 1부터 n까지를 이분 탐색하면 된다.
하지만 math에 sqrt 라는 좋은 함수가 있으니 이를 이용하면 간단하게 해결할 수 있다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
import math
def solution(n):
    answer = math.sqrt(n)
    if answer % 1 == 0:
        return (answer+1)*(answer+1)
    else:
        return -1
  • C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <vector>
#include <math.h>
using namespace std;

long long solution(long long n) {
    long long answer = sqrt(n);
    if(answer*answer == n){
        return (answer+1)*(answer+1);
    }
    else{
        return -1;
    }
}


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - x만큼 간격이 있는 n개의 숫자

[알고리즘] 프로그래머스 - 자연수 뒤집어 배열로 만들기