Programming/코딩 1일 1문제
[Programmers] 제곱수 판별하기 (Python) (feat.ChatGPT)
솜씨좋은장씨
2023. 4. 5. 19:08
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 제곱수 판별하기 입니다.
👨🏻💻 문제 풀이 - 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 한 점이 새로웠습니다.