Algorithm 67

[프로그래머스]_Level 1_정수 제곱근 판별_파이썬

2021.09.04 def solution(n): sqrt_n = pow(n, 0.5) return pow(int(sqrt_n)+1, 2) if sqrt_n == int(sqrt_n) else -1 pow() pow(x, y)는 x의 y 제곱한 결괏값을 돌려주는 함수이다. # 1 def solution(n): sqrt_n = pow(n, 0.5) if sqrt_n == int(sqrt_n): return pow(int(sqrt_n)+1, 2) else: return -1 # 2 def solution(n): sqrt_n = n ** 0.5 if sqrt_n == int(sqrt_n): return int(sqrt_n) ** 2 else: return -1

[프로그래머스]_Level 1_최대공약수와 최소공배수_파이썬

2021.09.04 def solution(n, m): def gcd(a, b): return gcd(b, a % b) if b > 0 else a return [gcd(n, m), n * m // gcd(n, m)] Project Euler의 5번 문제와 거의 동일한 문제여서 어떻게 코드를 줄일 수 있을지에 대해 생각했다. 우선 최대공약수를 구하는 함수는 유클리드 호제법을 재귀함수로 작성하였다. 호제법이란 두 수가 서로의 수를 나누어 결국 원하는 수를 얻는 알고리즘을 나타낸다. 유클리드 호제법이란 2개의 자연수 A, B에 대해서 A > B의 경우, A를 B로 나눈 나머지를 R이라 하면 A와 B의 최대 공약수는 B와 R의 최대공약수와 같다. 이 성질에 따라 B를 R로 나눈 나머지 R'을 구하고, 다시 R..

[프로그래머스]_Level 1_콜라츠 추측_파이썬

2021.09.03 def solution(num): answer = 0 while num != 1: if num % 2 == 0: num = num / 2 else: num = num * 3 + 1 answer += 1 if answer >= 500: answer = -1 break return answer 정확성 : 93.8 def solution(num): answer = 0 while True: if num % 2 == 0: num = num / 2 answer += 1 else: num = num * 3 + 1 answer += 1 if num == 1: if answer >= 500: answer = -1 return answer return answer 1이 아닐 경우 while문을 통해 입..