just inside

[백준] Bronze 3. 30802 - 웰컴 키트 python 본문

coding test/구현

[백준] Bronze 3. 30802 - 웰컴 키트 python

방울도마도 2024. 7. 10. 14:40
728x90

문제 링크

https://www.acmicpc.net/problem/30802


문제 설명

2024년 2월 3일 개최 예정인 온사이트 그랜드 아레나에서는 참가자들에게 티셔츠 한 장과 펜 한 자루가 포함된 웰컴 키트를 나눠줄 예정입니다. 키트를 제작하는 업체는 다음과 같은 조건으로만 주문이 가능합니다.

  • 티셔츠는 S, M, L, XL, XXL, 그리고 XXXL의 6가지 사이즈가 있습니다. 티셔츠는 같은 사이즈의 𝑇장 묶음으로만 주문할 수 있습니다.
  • 펜은 한 종류로, 𝑃자루씩 묶음으로 주문하거나 한 자루씩 주문할 수 있습니다.

총 𝑁명의 참가자 중 S, M, L, XL, XXL, XXXL 사이즈의 티셔츠를 신청한 사람은 각각 𝑆,𝑀,𝐿,𝑋𝐿,𝑋𝑋𝐿,𝑋𝑋𝑋𝐿명입니다. 티셔츠는 남아도 되지만 부족해서는 안 되고 신청한 사이즈대로 나눠주어야 합니다. 펜은 남거나 부족해서는 안 되고 정확히 참가자 수만큼 준비되어야 합니다.

티셔츠를 𝑇장씩 최소 몇 묶음 주문해야 하는지, 그리고 펜을 𝑃자루씩 최대 몇 묶음 주문할 수 있고, 그 때 펜을 한 자루씩 몇 개 주문하는지 구하세요.

 

입력

첫 줄에 참가자의 수 𝑁이 주어집니다. (1≤𝑁≤10^9) 

둘째 줄에 티셔츠 사이즈별 신청자의 수 L𝑆,𝑀,𝐿,𝑋𝐿,𝑋𝑋𝐿,𝑋𝑋𝑋𝐿이 공백으로 구분되어 주어집니다. (0≤𝑆,𝑀,𝐿,𝑋𝐿,𝑋𝑋𝐿,𝑋𝑋𝑋𝐿≤𝑁; 𝑆+𝑀+𝐿+𝑋𝐿+𝑋𝑋𝐿+𝑋𝑋𝑋𝐿=𝑁) 

셋째 줄에 정수 티셔츠와 펜의 묶음 수를 의미하는 정수 𝑇와 𝑃가 공백으로 구분되어 주어집니다. (2≤𝑇,𝑃≤10^9) 

 

출력

 

첫 줄에 티셔츠를 𝑇장씩 최소 몇 묶음 주문해야 하는지 출력하세요.

다음 줄에 펜을 𝑃자루씩 최대 몇 묶음 주문할 수 있는지와, 그 때 펜을 한 자루씩 몇 개 주문하는지 구하세요.


제출 코드

import sys

input = sys.stdin.readline

n = int(input().rstrip())
sizes = list(map(int, input().split()))
t, p = map(int, input().split())
result = 0

for size in sizes:
    if size % t == 0:
        result += size//t
    else:
        result += size//t + 1

print(result)
print(n//p, n%p)

 

풀이

  • 티셔츠는 남아도 된다. 따라서 사이즈별 신청 인원인 size를 티셔츠 묶음 수인 t로 나누었을 때
    • 나누어 떨어지면 몫을 result에 더해준다.
    • 나누어 떨어지지 않으면 나머지가 존재하므로 몫 + 1 을 result에 더해준다.
  • 펜은 남아서는 안된다. 따라서 전체 인원을 펜 묶음 수로 나눈 몫과 나머지를 출력해준다.

 

알아둘 사항

728x90