이번 팀프로젝트에서는 지금까지와 다르게 여러 규칙을 많이 정했는데 그중 메소드 길이 15줄 이상 일시 따로 메소드로 빼는 부분이 힘들지만 다 하고 나면 좋아 보이긴한다.
만약 메소드에서 따로 메소드를 안빼고 registerOrder 메소드에에서 다 처리 했다면 코드 길이가 어마어마하게 길어져서
다른사람은 registerOrder 메소드 보자마자 때려치고 싶어 할거다.
그래서 이렇게 따로 메소드로 빼는게 좋긴한데 메소드 이름 정하는게 제일 어렵다..
그리고 실제 작업전 미리 어떻게 하는게 좋을지 틀을 이렇게 생각해보고 정리하고 시작했는데 당연 시작전 생각했던거랑 달라서 수정하기도 했으나 작업할때 막힘이 없어서 좋았다.
↓ ↓ ↓ ↓ ↓
-------------------------------------------------------------------------------------------------------------------------------------------------------
프로그래머스 기사단원의 무기
문제
import math
def solution(number, limit, power):
divisor=[]
for i in range(1,number+1):
count = 0
for k in range(1,int(math.sqrt(i))+1):
if k * k == i: count +=1
elif i % k == 0: count += 2
if count > limit: count = power
divisor.append(count)
return sum(divisor)
이 문제는 약수 구하는 문제랑 다름이 없고 완전 탐색인걸 바로 느꼈다.
약수 구하는 부분에서는 약수를 효율적으로 구하는 방법인 해당 수의 제곱근까지만 확인하면 끝이다!