[프로그래머스] Lv1 부족한 금액 계산하기

do yeon kim·2022년 9월 18일
회고

문제풀이에 있어서 반복문을 사용하게 되면 그만큼 많은 수행을 한다는 것을 의미한다. 문제풀이에 있어서 반복문을 아예 사용하지 않을 수는 없으나, 가능하면 반복문을 사용하지 않는 선에서 문제풀이가 가능하지 생각 해 볼 필요가 있다.

이번 문제의 경우 수학적 공식을 이용하면, 반복문을 사용하지 않고도 해결가능했다.



문제풀이

https://school.programmers.co.kr/learn/courses/30/lessons/82612?language=python3

def solution(price, money, count):
    sum = 0
    for i in range(1, count+1):
        sum += price * i
    
    if sum-money > 0:
        return sum-money
    else:
        return 0
    
def solution(price, money, count):
    result = sum([i*price for i in range(1, count +1)]) - money  
    if result > 0:
        return result
    else:
        return 0

def solution(price, money, count):
    return sum([i*price for i in range(1, count +1)]) - money if sum([i*price for i in range(1, count +1)]) - money > 0 else 0


# 등차수열을 이용한 풀이
def solution(price, money, count):
    return max(0,price*(count+1)*count//2-money) # 뒤에 값이 마이너스 값이 나오면 0이 최대값이 된다.


a = solution(1, 20,4)
print(a)


max()

max() 메서드의 매개변수로 순회가능한 자료를 주어서 가장 큰 값을 가지고 오는 것이다.

위의 풀이에서 max(0, 결과값)을 줌으로써 두개 중 결과값에 대한 조건이 맞을 경우 0을 리턴하는 식으로 풀이를 했다.

0개의 댓글