첫 코드 def solution(phone_number): answer = '*'*(len(phone_number)-4) + phone_number[-4:] return answer 개선된 코드 def solution(phone_number): return '*' * (len(phone_number) - 4) + phone_number[-4:]
첫 코드 def solution(n): temp = str(n) answer = [char for char in temp] answer.reverse() answer = list(map(int, answer)) return answer 개선된 코드 def solution(n): return [int(i) for i in str(n)[::-1]]
핵심아이디어 정수를 문자열로 정렬한 후 다시 join 함수를 사용하여, 정수로 만들어준다. 첫 코드 def solution(n): temp = str(n) list2 = [char for char in temp] list2.sort(reverse = True) answer_1 = "".join(list2) answer = int(answer_1) return answer 개선된 코드 def solution(n): a = str(n) return int(''.join(sorted(a,reverse=True)))
첫 코드 def solution(s): if (len(s) == 4 or len(s) == 6) and s.isdigit(): answer = True else: answer = False return answer 개선된 코드 def solution(s): return ((len(s) == 6) or (len(s) == 4)) and s.isdigit() 논리 연산을 하면 자동으로 True와 False를 도출해 준다.
핵심 아이디어 math library의 math.sqrt()와 is_integer() 메소드를 활용하여 문제를 해결한다. 첫 코드 import math def solution(n): a = math.sqrt(n) if float(a).is_integer(): answer = int((a+1)**2) else: answer = -1 return answer
핵심 아이디어 n과 m의 큰 수와 작은 수를 구하여, x에는 작은 수의 약수들을 넣는다. x에 포함되는 수중에서 큰 수와 나눠지는 수 중에서 가장 큰 값을 최대 공약수로 구한다. 그리고 두 수의 곱은 최소공배수 x 최대공약수를 사용하여, 최소공배수를 구한다. 첫 코드 def solution(n, m): x = [] y = [] answer = [] temp = [n, m] a = min(temp) b = max(temp) for i in range(1, a+1): if a % i == 0: x.append(i) for j in x: if b % j == 0: y.append(j) gcd = max(y) lcm = int((m * n) / gcd) answer.extend([gcd, lcm]) return..