개발나라 스용공주

[프로그래머스] Lv.0 C++ 제곱수 판별하기 / sqrt() 본문

C++/코딩테스트

[프로그래머스] Lv.0 C++ 제곱수 판별하기 / sqrt()

스용공주 2024. 4. 14. 16:18
728x90
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/120909

 

프로그래머스

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

programmers.co.kr

 

<문제 설명>

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

n result
144 1
976 2

 

#include <string>
#include <vector>
#include <math.h>

using namespace std;

// 변수에 제곱수 값 담고 그 값이 제곱과 같으면 1 아니면 2
int solution(int n) {
    int answer = 0;
    
    int a = sqrt(n);
    
    if(sqrt(n) == a)
        answer = 1;
    else
        answer = 2;
    
    return answer;
}

 

  • sqrt() : 해당 수의 제곱수를 구해주는 함수

ex 1) sqrt(144)은 12가 나온다.

ex 2) sqrt(3)은 1.*****이 나오므로 이와 같은 방식으로 위의 식을 보면 int a에는 1이 들어가게 되는데 그럼 1이후의 소수점은 생략된 값이 들어가게 되므로 sqrt()의 값이 온전히 들어있지 않게 된다. 딱 떨어지는 제곱근의 값이 맞다면 sqrt()와 a가 같은 값으로 맞아떨어져야한다.

 

728x90
728x90
Comments