image

Bronze Ⅲ 🔗30802. 웰컴 키트

📝문제 요약

문제 설명

입력

첫 줄에 참가자의 수 N$N$이 주어집니다. $(1 \le N \le 10^9)$

둘째 줄에 티셔츠 사이즈별 신청자의 수 $S, M, L, XL, XXL, XXXL$이 공백으로 구분되어 주어집니다. $(0 \le S, M, L, XL, XXL, XXXL \le N;$ $S + M + L + XL + XXL + XXXL = N)$

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

출력

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

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


✏️문제 풀이

< 티셔츠의 묶음 개수 >

  • 티셔츠 묶음 개수를 저장할 변수 t_n을 선언
  • for문을 사용하여 사이즈의 개수인 6번 만큼 돌려주었다.
    • if size[i] % t == 0: > 필요한 개수를 t로 나눈 나머지가 0개라면
      • size[i]/t > 필요한 개수를 t로 나눈 몫만큼 더하여준다.
    • else : 위의 조건이 아니면
      • size[i]/t 에 +1을 한 값을 더하여 준다. > 남는건 가능하다고 했으니..!

<펜의 묶음 수, 개수>

  • 참가자수에서 펜의 개수를 나누면(n/p ) 펜의 묶음 수!
  • 이제 남음 펜의 수는 펜의 개수를 나눈 후의 나머지(n%p)로 구하면 된다!


💯제출 코드

n = int(input())
size = list(map(int, input().split()))
t, p = map(int, input().split())
t_n = 0

for i in range(6) :
    if size[i] % t == 0:
        t_n += int(size[i]/t)
    else :
        t_n += (int(size[i]/t)+1)

print(t_n)

p_n = [int(n/p), n%p]
print(*p_n)

댓글남기기