-
파이썬 - 약수 갯수와 덧셈(for문 반복 / 초기화)문제풀이/PYTHON 2024. 4. 17. 21:19
def solution(left, right): for x in range(left,right-left+1) : str(x)=[] for k in range(1,left) : if x%k==0 : str(x).append(k) a=0 if len(str(x))%2== 0: a+=x else : a-=x return a
내 노력은 허사가 되어따
다른걸 생각해야 한다.
for 문에 의한 기록 초기화 문제
def solution(left, right): for x in range(left, right - left + 1): d = [] for k in range(1, left): if x % k == 0: d.append(k) a = 0 if len(d) % 2 == 0: a += x else: a -= x return a
왜 불가능한가?
1. a 정의 위치는 if절 위이면 for 문에 의해 초기화 되기 때문에 마지막 인수만 적용된다.
2. x에 대한 for문 하단에 if절을 넣었기에 계속 초기화 되어 d에는 요소가 존재하지 않는다.
def solution(a,b): c = 0 for x in range(a,b + 1): d = 0 for k in range(1, b+1): if x % k == 0: d+=1 if d % 2 == 0: c += x else: c -= x return c
왜 가능한가?
1. c는 누적으로 기록되고
2. d는 약수 갯수가 짝수 홀수 판단 후 초기화 된다.
'문제풀이 > PYTHON' 카테고리의 다른 글
파이썬 - 행렬 덧셈 (0) 2024.04.22 파이썬 - string 내용물 검사 // Error 와 false 차이 (1) 2024.04.19 파이썬 - 숫자에 부호 붙이기(불리언 배열) (0) 2024.04.11 파이썬 - list comprehension (0) 2024.04.08 파이썬 - 재귀문 만들기 (0) 2024.04.08