본문 바로가기

Baekjoon

[Baekjoon]백준 30802 웰컴 키트(브론즈 3) - Python

문제설명 1
문제설명 2

문제만 제대로 이해한다면 금방 해결할 수 있는 문제이다

마지막 줄에는 한 묶음당 살 수 있는 수량을 입력받게 되며, 해당 수량을 바탕으로 티셔츠와 펜을 부족하지 않게 구입해야한다

티셔츠의 경우 남아도 되고, 펜의 경우에는 한자루도 구입이 가능하기 때문에 이 점에 유의하여 코드를 작성해야한다

먼저, 티셔츠의 경우 한 묶음당 살 수 있는 최대 수량보다 사야하는 양이 더 작다면 한 묶음만 사도 된다

허나, 파이썬에서 // 연산자를 사용하게 되면 나머지는 버리고 몫만 저장하기 때문에 +1을 해주어야한다

여기서 주의할 점은 모든 경우에 +1을 하면 안된다 예제처럼 5장을 사야하는데, 한 묶음이 5장인 경우에는 한 묶음만 사도 된다

그렇기 때문에 나머지가 0인 경우에는 따로 계산하는 로직을 작성해야한다

펜의 경우에는 인원수에 맞게 구입하면 되고, 개별구매도 가능하기 때문에 인원수//P, 인원수%P로 작성하면 된다

import sys
input = sys.stdin.readline

num = int(input())
shirt_size = list(map(int, input().split()))
pack = list(map(int, input().split()))
result = 0
for T in shirt_size:
    if T % pack[0] == 0:
        result += T // pack[0]
    else:
        tmp = T // pack[0] + 1
        result += tmp
    #print(result)
    
print(result)
print(num//pack[1], num%pack[1])