BoJ 8321 - Tables [with Python / 문제 한국어로 번역]

ssook·2023년 9월 27일
0

BoJ 문제기록

목록 보기
19/29
post-thumbnail

📍 문제

바이트맨 씨는 목수로 일하고 있습니다.
그에게 소나무 목재로 탁자를 만들어 달라는 주문이 들어왔습니다.
그의 작업실에 소나무 목재 판자는 많이 있지만 나사가 다 떨어진 상황입니다. 그래서 창고로 가서 나사 상자 몇 개를 가져와야 합니다.
바이트맨 씨가 탁자를 만들기에 충분한 나사를 채우려면, 최소 몇 개의 나사 상자가 필요할까요?

입력

표준 입력의 첫 번째 줄에는 공백으로 구분된 세 개의 정수 n, k, s (1 ≤ n, k, s ≤ 1,000)가 포함되어 있습니다.
이 값들은 바이트맨 씨의 창고에 있는 나사 상자의 수, 탁자 하나를 만드는 데 필요한 나사의 수, 그리고 바이트맨이 만들어야 하는 탁자의 수를 각각 나타냅니다.
두 번째 줄에는 n개의 정수 aiai (1 ≤ aiai ≤ 1,000)가 포함되어 있는데, 각각의 aiai는 창고의 i번째 상자에 들어있는 나사의 수를 나타냅니다.

출력

표준 출력의 유일한 줄에는 바이트맨 씨가 창고에서 가지고 와야 하는 나사 상자의 최소 개수를 나타내는 정수 하나를 출력해야 합니다.
이 때, 그의 창고에는 충분한 나사가 있다고 가정합니다.

📍 아이디어

브론즈 단계여서 그렇게 로직이 어렵지 않았던 문제.
나사 수가 담긴 상자 정보를 먼저 입력 받는다.
그 후 split하고 나서 리스트로 만든 다음, 내림차 순으로 정렬을 진행해준다.

📍 제출코드

def main():
    while True:
        try:
            n, k, s = map(int, input().split())
            a = list(map(int, input().split()))
            a.sort(reverse=True)
            k *= s
            total = 0
            pos = 0
            while total < k:
                total += a[pos]
                pos += 1
            print(pos)
        except EOFError:
            break

if __name__ == "__main__":
    main()
profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글

관련 채용 정보