IT/Programming / / 2022. 7. 22. 13:53

[백준, Python] 10156번 과자

반응형
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 17617 10524 9585 60.260%

문제

동수는 제과점에 과자를 사러 가는데 현재 가진 돈이 모자랄 경우 부모님께 모자란 돈을 받으려고 한다. 과자 한 개의 가격이 K, 사려고 하는 과자의 개수가 N이고, 현재 가진 돈의 액수를 M이라 할 때 여러분은 동수가 부모님께 받아야 하는 모자란 돈을 계산하려고 한다. 

예를 들어, 과자 한 개의 가격이 30원, 사려고 하는 과자의 개수가 4개, 현재 동수가 가진 돈이 100원이라 할 때, 동수가 부모님께 받아야 하는 돈은 20원이다. 과자 한 개의 가격이 250원, 사려고 하는 과자의 개수가 2개, 현재 동수가 가진 돈이 140원이라 할 때, 동수가 부모님께 받아야 하는 돈은 360원이다. 과자 한 개의 가격이 20원, 사려고 하는 과자의 개수가 6개, 현재 동수가 가진 돈이 120원이라 할 때 동수가 부모님께 받아야 하는 돈은 0원이다. 과자 한 개의 가격이 20원, 사려고 하는 과자의 개수가 10개, 현재 동수가 가진 돈이 320원이라 할 때 동수가 부모님께 받아야 하는 돈은 역시 0원이다. 

과자 한 개의 가격, 사려고 하는 과자의 개수와 동수가 현재 가진 돈의 액수가 주어질 때 동수가 부모님께 받아야 하는 돈의 액수를 출력하는 프로그램을 작성하시오. 

입력

첫 번째 줄에는 과자 한 개의 가격 K, 사려고 하는 과자의 개수 N, 현재 동수가 가진 돈 M이 각각 공백을 사이에 두고 주어진다. 단, K, N은 1,000 이하의 양의 정수이고, M은 10만 이하의 양의 정수이다. (1 ≤ K, N ≤ 1,000, 1 ≤ M ≤ 100,000이다.) 

출력

첫 줄에 동수가 부모님께 받아야 하는 돈의 액수를 출력한다. 

예제 입력 1 복사

300 4 1000

예제 출력 1 복사

200

예제 입력 2 복사

250 2 140

예제 출력 2 복사

360

예제 입력 3 복사

20 6 120

예제 출력 3 복사

0

예제 입력 4 복사

20 10 320

예제 출력 4 복사

0

 


 

더보기
from collections import Counter

# 1차 입력값 처리
def chkInput(testCase=None):
    # 케이스 반복 횟수 체크
    caseLength = len(testCase)

    # 입력값이 3개가 아닐 때
    if caseLength != 3:
        raise Exception('입력값이 3개가 아닙니다.')

    # 과자 한개 가격 범위 체크
    if not (1 <= testCase[0] <= 1000):
        raise Exception('입력값의 범위가 잘못되었습니다.')

    # 사려고 하는 과자 개수 범위 체크
    if not (1 <= testCase[1] <= 1000):
        raise Exception('입력값의 범위가 잘못되었습니다.')

    # 현재 동수가 가진 돈 범위 체크
    if not (1 <= testCase[2] <= 100000):
        raise Exception('입력값의 범위가 잘못되었습니다.')


# 결과값 계산
def calOutput(testCase=None):
    funcResult = 0

    snackPrice = testCase[0] # 과자 한개 가격
    wtbSnackCnt = testCase[1] # 사려고 하는 과자 개수
    money = testCase[2] # 현재 동수가 가진 돈

    # 가진 돈이 적을 때
    if snackPrice * wtbSnackCnt > money:
        # 절대값
        funcResult = abs(money - snackPrice * wtbSnackCnt)
    else:
        # 가진 돈이 같거나 많을 때
        funcResult = 0

    return funcResult


try:
    caseInputList = list(map(int, input().split()))
    chkInput(caseInputList)
    print(calOutput(caseInputList))

except Exception as e:
    print(e)
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유