TIL
[240223] SQL: 코드카타 131 & 파이썬: 코드카타 35
동명이인B
2024. 2. 23. 20:53
[파이썬 코드카타]
부족한 금액 계산하기
https://school.programmers.co.kr/learn/courses/30/lessons/82612
1) 어떤 문제가 있었나
놀이기구를 n번 이용하면, 이용할 때마다 n배의 이용료 부과 > 금액이 부족하다면 모자란 금액을, 아니면 0을 반환하는 문제
2) 내가 시도해본 건 무엇인가
for 문과 누적합을 활용해 n번 이용할 때마다 돈이 늘어나도록 하고, 최종 금액이 money보다 큰지 작은지 if 절로 판별
if 절 결과 값을 바로 return 하고자 했으나 이 경우, 반복문이 돌지 않아 값이 0만 나와 실패
3) 어떻게 해결했나
return 열을 for문과 동일한 위치로 조정하여 루프가 모두 돌고 마지막 최종 값이 출력되도록 수정
def solution(price, money, count):
answer = 0
for i in range(1, count+1):
answer += price*i
if money - answer < 0:
result = abs(money - answer)
else:
result = 0
return result
4) 무엇을 새롭게 알았나
- return을 if 절 밑에 넣고 싶었다면, for문과 if절을 맞춰주는 것도 가능.
└ 만약 돈이 부족하지 않을 때 0이 아닌 다른 숫자를 반환해야 한다면 내 답은 틀렸을 듯
└ n번의 놀이기구를 모두 탄다면 필요한 금액을 완전히 구한 뒤에, if 절로 체크하는 것이 더 정확함
def solution(price, money, count):
answer = 0
for i in range(1, count+1):
answer += price*i
if money - answer < 0:
return abs(money - answer) # abs 없이 순서를 반대로 해도 answer - money
else:
return 0