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

YH J·2023년 4월 17일
0

프로그래머스

목록 보기
8/168

문제 링크

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

내 풀이

sqrt(제곱 수 구하는 함수 cmath에 포함) 사용하여 나온 값이 정수면 제곱수이다.
sqrt(n)을 int로 형변환하면 소수점 이하는 버려지므로 그렇게 판별했다.

내 코드

#include <string>
#include <vector>
#include <cmath>

using namespace std;

int solution(int n) {
    int answer = 0;
    if(sqrt(n) > int(sqrt(n)))
        answer = 2;
    else
        answer = 1;
    return answer;
}

다른 사람의 풀이

#include <string>
#include <vector>
#include <cmath>

using namespace std;

int solution(int n) {
    int answer = sqrt(n);
    answer = (answer * answer == n)? 1:2;
    return answer;
}

다른 사람의 풀이 해석

sqrt(n) 을 제곱해서 n이 다시 나오는지 안나오는지로 삼항연산자를 사용하였다.

profile
게임 개발자 지망생

0개의 댓글