
def solution(n):
answer = 0
for i in range(1, n + 1):
if (n % i == 0):
answer += i
return answer
약수는 어떤 수를 나눴을때 나머지가 0인 수이니 if조건문으로 n % i 가 0 일때 answer에 + i 를 해주었습니다.

def solution(n):
answer = 0
for i in str(n):
answer += int(i)
return answer
n을 각 자리수 별로 쉽게 하기 위해 str값으로 바꿔주고 답에 넣을때는 int로 바꿨습니다.


def solution(wallet, bill):
answer = 0
while True:
if wallet[0] >= bill[0] and wallet[1] >= bill[1]:
break
if wallet[0] < bill[0]:
bill[0] = int(bill[0] / 2)
answer += 1
elif wallet[1] < bill[1]:
bill[1] = int(bill[1] / 2)
answer += 1
return answer
처음에 이코드로 실행시 위에 입출력 예는 맞았지만 아마 90도로 회전했을떄를 고려하지 않다 정답이 안나왓습니다.
def solution(wallet, bill):
answer = 0
tb1 = 0
tb2 = 0
while True:
if wallet[0] >= bill[0] and wallet[1] >= bill[1]:
break
if wallet[0] < bill[0]:
bill[0] = int(bill[0] / 2)
answer += 1
if wallet[1] < bill[1]:
bill[1] = int(bill[1] / 2)
answer += 1
tb1 = bill[1]
tb2 = bill[0]
if wallet[0] >= tb1 and wallet[1] >= tb2:
break
return answer
혹시 몰라서 따로 bill을 90도로 돌렸을때 계산을 하기위해
tb1, tb2를 추가로 넣어줫지만 아직도 10개중 2개는 실패한다.
def solution(wallet, bill):
answer = 0
tb1 = 0
tb2 = 0
while max(bill) > max(wallet) or min(bill) > min(wallet):
if bill[0] > bill[1]:
bill[0] = int(bill[0] / 2)
answer += 1
else:
bill[1] = int(bill[1] / 2)
answer += 1
tb1 = bill[1]
tb2 = bill[0]
if wallet[0] >= tb1 and wallet[1] >= tb2:
break
return answer
그양 문제를 잘못 읽었습니다..
문제대로 푸니깐 잘됩니다
잘못된점 첫번째는 반복문의 조건문을 잘못 적었고
두번쨰는 bill을 접는 수가 wallet에 대비해서 하는게 아니라 bill과 비교해서 하는거였습니다.