백준 알고리즘/수학

30802번 웰컴키트 Python(수학 알고리즘)

현준의코딩 2024. 6. 19. 21:46

30802번 웰컴키트 : 파이썬(Python) 

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

 

목차

     

     

    문제


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

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

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

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

     

    입력


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

    둘째 줄에 티셔츠 사이즈별 신청자의 수 𝑆,𝑀,𝐿,𝑋𝐿,𝑋𝑋𝐿,𝑋𝑋𝑋𝐿이 공백으로 구분되어 주어집니다. 

    셋째 줄에 정수 티셔츠와 펜의 묶음 수를 의미하는 정수 가 공백으로 구분되어 주어집니다. 

     

    출력


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

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

     

     

     

     

    문제 요소 찾기


    우선 문제를 읽어보면 입력에

    1번 줄에 티셔츠의 개수(23벌),

    2번 줄에 사이즈별 티셔츠 개수(S : 3, M : 1, L : 4, XL : 1, XXL : 5, XXXL: 9) 총 23벌

    3번 줄에 티셔츠 묶음(5벌씩)과 펜의 묶음(7자루씩)이 나와있다. 

     

    출력 값에는 1번 줄에 티셔츠를 몇 장 사야 하는지, 즉 5벌을 초과하면 그 사이즈 세트는 2세트를 사야 하는 것이다. 

    위에 식에는 XXXL만 5를 초과하므로 XXXL 세트는 2개 시킨다. 나머지는 1세트씩 주문하면 총 7세트가 된다. 

     

    2번 출력값은 23벌에 7세트가 넘지 않을 때까지 곱한 값. 

    즉 23 // 7을 출력하고, 다음은 나머지인 23 % 7을 출력하면 될 것 같다.

     

     

    내가 푼 코드


    import math
    
    N = int(input())
    size = list(map(int, input().split()))
    T, P = map(int, input().split())
    shirt = 0
    
    for i in range(len(size)):
        shirt += math.ceil(size[i]/T)   
        
    print(shirt)
    print(N//P, N%P)

    1. import math 라이브러리를 끌고 온다. 

    2. 티셔츠의 개수 N을 입력받는다.

    3. 옷 사이즈별 개수를 리스트로 입력받는다.

    4. 티셔츠 묶음 T와 볼펜 묶음 P를 각각 입력받는다.

    5. shirt라는 정수형 변수를 초기화해서 티셔츠 세트를 몇 개 주문해야 되는지 넣어준다.

    6. for문을 list의 길이만큼 돌려 shirt에 주문해야 할 개수를 넣어준다. 여기서 5를 초과하는데, 그냥 나누기를 하면 1.nnnn... 식으로 나와버리니 math 라이브러리의 ceil 함수를 이용하여 5를 초과하는 경우 올림 처리를 해준다. 

    7. 첫 째 줄에 shirt 세트 개수를 출력하고 둘 쨰 줄에 볼펜 세트 개수와, 낱개를 출력한다.

     

     

    끝!!! 

     

    읽어주셔서 감사합니다! 궁금하신 사항이나 피드백 사항 있으시면 언제든 댓글 남겨주세요.