본문 바로가기
코딩테스트 연습

프로그래머스 부족한 금액 계산하기 Level 1

by 동배_ 2021. 8. 15.

문제 설명

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

새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.
놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요.
단, 금액이 부족하지 않으면 0을 return 하세요.제한사항

  • 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수
  • 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수
  • 놀이기구의 이용 횟수 count : 1 ≤ count ≤ 2,500, count는 자연수

처음 문제 해석 및 풀이 방법

1. 반복문을 통해 count 수만큼 가격을 올려서 더해준다

2. if문을 통해 최종값과 현재 소지금액을 비교한다

3. 소지금액이 많으면 0 아니면 부족한 금액을 return 한다.

 

내가 작성한 소스코드

def solution(price, money, count):
    finalAmount = 0
    
    for i in range(1,count+1): #count 만큼 반복
        finalAmount += price*i # 탄만큼의 요금 가중부가
        
    if money > finalAmount: #최종요금이 소지금액보다 적으면 0반환
        return 0
    
    return finalAmount - money #아니면 얼마 부족한지 반환

count 수 만큼 반복문을 반복한다 이때 range는 0부터 시작하므로 1부터 시작을 정해준다(안하면 0이 곱해져서 에러뜸)

 

가격과 i를 곱해준 값을 계속 finalAmount에 더해준다.(이용시 마다 기존 가격에서 이용횟수만큼을 곱해서 부과하기 때문)

 

최종부과금액인 finalAmount와 현재 소지 금액인 money를 비교해 소지금액이 많으면 0 아니면 부족한 금액을 리턴한다.

 

결론 및 고찰 

정말 간단한 문제였다. 단순 for문을 통해 바로 통과했고 한번의 막힘없이 푼 것 같다.

오늘은 일요일이다 보니 운이 좋게도 무작위로 선택한 문제가 쉬웠던 것 같다.

 

소요 시간 2

댓글