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

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

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

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



문제풀이

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개의 댓글