프로그래머스 Lv1 문제입니다. 실전에 대비하기 위해 30분 시간제한을 두고 풀었습니다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/82612
[나의 풀이]
⌛ 6분 소요
def solution(price, money, count):
answer = -1
answer = money-sum([i*price for i in range(1,count+1)])
if answer>=0:
return 0
else:
return abs(answer)
사용할 때마다 N배씩 증가하는 놀이기구를 사용할 때 부족한 금액을 출력하는 문제입니다.list comprehension을 통해 어렵지 않게 구현할 수 있었고 금액이 부족하지 않을 때 0을 return하는 과정만 처리하면 되는 문제였습니다.🐹🐹🐹
[다른사람의 풀이1]
def solution(price, money, count):
for i in range(1,count+1):
money -= price*i
if money < 0:
money = abs(money)
else:
money = 0
return money
저의 풀이와 같은 방식의 구현 방법입니다.
[다른사람의 풀이2]
def solution(price, money, count):
return max(0, price * sum(range(1,count+1))-money)
간결한 한 줄의 코드로 구현한 케이스입니다. 부족한 금액을 연산하는 방법은 유사하되 문제에서 요구하는 출력값은 부족한 금액 or 0(부족하지 않을 시) 이기 때문에 max(0,부족한 금액)으로 표현하여 해결한 풀이였습니다.🐰🐰🐰
감사합니다.