본문 바로가기
프로그래밍/Algorithm

[프로그래머스 Programmers] 정수 제곱근 판별

by bantomak 2023. 11. 28.

문제 설명

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

 

제한 사항

n은 1이상, 50000000000000 이하인 양의 정수입니다.

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

풀이 코드

using System;

public class Solution {
    public long solution(long n) {
        var r = Math.Sqrt(n);
        return (n % r == 0) ? (long)Math.Pow(r + 1, 2) : -1;
    }
}

 

제곱근을 찾는 Math.Sqrt와 제곱을 해주는 Math.Pow를 이용해서 해당 문제를 해결하였다.

제곱근이 양의 정수인지 확인하기 위해서 나머지 연산시에 결과값이 0인지 확인해서 정수인지 실수인지 구분하였다.

 

함께 보면 좋은 글

 

C# Math.Sqrt(Double) vs Math.Pow(Double, Double)

Math.Sqrt() 네임스페이스: System 어셈블리: System.Runtime.dll 지정된 숫자의 제곱근을 반환합니다. public static double Sqrt (double d); d Double 제곱근을 구할 숫자 예제 코드 class Program { static void Main(string[] args

jettstream.tistory.com

 

 

수의 체계

자연수(Natural Number) == 양수, 양의 정수(Posivie Integer) 자연수란 1, 2, 3과 같이 1부터 시작하여 1씩 커지는 수를 이야기한다. 음수, 음의 정수((Negative Integer)) 음수란 자연수와 0 보다 작은 숫자를 의미

jettstream.tistory.com

댓글