
1. 프로그래머스 python 코딩테스트
Level 0. 제곱수 판별하기
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
정답 확인 (replace 안씀)
for 반복문 + if문def solution(n): for i in range(1,1001): if i**2 == n: return 1 return 2
return의 위치를 자꾸 잘못 넣음.
만일if문 아래에 위치한다면,i=1만 검사하고 바로 return 해버림. 더 검사하고 싶으면, return을if문 밖으로 빼야함.
while은 조건이 맞는 동안 계속 반복함.
if는 조건이 한번 맞는지 확인해서 실행함.
2.
수학적 풀이_루트 사용def solution(n): return 1 if int(n**0.5)**2 == n else 2
n**0.5: 루트n, 즉 n의 제곱근.
n = 6,16 ** 0.5 = 4
n = 18,18 ** 0.5 = 4.24int(n**0.5): 제곱근을 정수로 자른것.
int(4) = 4
int(4.25) = 4int(n**0.5) ** 2: 정수로 자른 값에 다시 제곱.
n = 16 -int(16**0.5)=4-4**2=16- 전체 조건 :
int(n**0.5)**2==n
n의 제곱근을 정수로 자른 다음 다시 2(제곱)할때, 원래의 수 n과 같으면 n은 제곱수.
3.
math 라이브러리import math def solution(n): return 1 if math.isqrt(n)**2 == n else 2
math.isqrt(): 루트n, 즉 n의 제곱근.