관리 메뉴

솜씨좋은장씨

[Programmers] 제곱수 판별하기 (Python) (feat.ChatGPT) 본문

Programming/코딩 1일 1문제

[Programmers] 제곱수 판별하기 (Python) (feat.ChatGPT)

솜씨좋은장씨 2023. 4. 5. 19:08
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 제곱수 판별하기 입니다.

 

프로그래머스

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

programmers.co.kr

👨🏻‍💻 문제 풀이 - SOMJANG

1. 제곱근을 구하는 math 의 sqrt 를 활용하여 입력 받은 숫자의 제곱근을 구하였습니다.

 

2. 제곱수의 제곱근을 구하면 딱 정수로 떨어지는 점을 활용하였습니다.

 

3. math.sqrt 로 제곱근을 구한 다음 제곱근 값을 int -> float 으로 변환한 값과 제곱근의 값이 같은지 체크하였습니다.

 

4. 같으면 1을 다르면 2를 정답으로 하였습니다.

👨🏻‍💻 코드 (Solution) - SOMJANG

import math

def solution(n):
    answer = 2
    sqrt_num = math.sqrt(n)
    
    if float(int(sqrt_num)) == sqrt_num:
        answer = 1
    return answer

👨🏻‍💻 문제 풀이 - ChatGPT

오늘도 참지 못하고 ChatGPT 에게도 풀어달라고 해보았습니다.

다음은 ChatGPT 의 풀이 입니다.

 

Python 내장 함수인 math 모듈을 이용하여 n의 제곱근을 구한 뒤, 이 값이 정수인지 아닌지를 판별하여 문제를 해결할 수 있습니다. 만약 n의 제곱근이 정수라면, n은 제곱수이므로 1을 반환하고, 그렇지 않으면 2를 반환합니다.

👨🏻‍💻 코드 (Solution) - ChatGPT

import math

def solution(n):
    if math.sqrt(n).is_integer():
        return 1
    else:
        return 2

문제를 푸는 관점 자체는 저와 같았으나

제가 몰랐던 is_integer() 라는 함수를 사용하여 math.sqrt를 통해 구한 제곱근이 정수인지 아닌지 판단하여

정수이면 1을 return 정수가 아니면 2를 return 한 점이 새로웠습니다.

 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments