바이트맨 씨는 목수로 일하고 있습니다.
그에게 소나무 목재로 탁자를 만들어 달라는 주문이 들어왔습니다.
그의 작업실에 소나무 목재 판자는 많이 있지만 나사가 다 떨어진 상황입니다. 그래서 창고로 가서 나사 상자 몇 개를 가져와야 합니다.
바이트맨 씨가 탁자를 만들기에 충분한 나사를 채우려면, 최소 몇 개의 나사 상자가 필요할까요?
표준 입력의 첫 번째 줄에는 공백으로 구분된 세 개의 정수 n, k, s (1 ≤ n, k, s ≤ 1,000)가 포함되어 있습니다.
이 값들은 바이트맨 씨의 창고에 있는 나사 상자의 수, 탁자 하나를 만드는 데 필요한 나사의 수, 그리고 바이트맨이 만들어야 하는 탁자의 수를 각각 나타냅니다.
두 번째 줄에는 n개의 정수 (1 ≤ ≤ 1,000)가 포함되어 있는데, 각각의 는 창고의 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()