소스 코드
def solution(left, right): answer = 0 for q in range(left,right+1): temp = [] for w in range(1,int(q**(1/2)+1)): if q % w == 0: if w ** 2 == q: temp.append(w) else: temp.append(q//w) temp.append(w) if len(temp) % 2 == 0: answer += q else: answer -= q return answer
해결 방법
1. 약수 n은 n까지 다 확인할 필요 없음
ex) 12의 경우 1-12 2-6 3-4가 짝을 이룸(12를 만들 수 있는 조합)
=> 3까지만 확인하면 끝(12까지 확인할 필요 없음)
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제풀이.프로그래머스' 카테고리의 다른 글
[프로그래머스 코딩] 스킬트리 - PYTHON (0) | 2021.08.31 |
---|---|
[프로그래머스 코딩] 모음 사전 - PYTHON (0) | 2021.08.30 |
[프로그래머스 코딩] 기능개발 - PYTHON (0) | 2021.08.25 |
[프로그래머스 코딩] 오픈채팅방 - PYTHON (0) | 2021.08.24 |
[프로그래머스 코딩] 직업군 추천하기 - PYTHON (0) | 2021.08.23 |