[Python] BOJ 25496 / 장신구 명장 임스

Jerry·2022년 12월 8일
0

알고리즘

목록 보기
21/25

문제
메이플스토리에는 전문 기술이라는 제작 시스템이 있다. 전문 기술은 특정량의 피로도가 쌓이는 대신 다양한 장비 및 비약을 제작할 수 있는 시스템이다. 장신구 명장인 임스는 어떻게 하면 더 효율적으로 많은 장신구를 제작할 수 있을지 고민에 빠졌다.

임스가 만들 수 있는 장신구는 NN개가 있고, 각각의 장신구를 만들면 AiA_i만큼의 피로도가 누적된다.

피로도가 200200 미만인 경우, 장신구를 제작할 수 있다. 현재 쌓인 피로도가 PP일 때, 임스가 제작할 수 있는 장신구의 최대 개수를 구해보자!

입력
첫 번째 줄에 정수 PP와 정수 NN이 공백으로 구분되어 주어진다. (1P2001 \le P \le 200, 1N10001 \le N \le 1\,000)

두 번째 줄에는 정수 A1,A2,,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다. (1Ai2001 \le A_i \le 200)

출력
제작할 수 있는 장신구의 최대 개수를 출력하시오.

입력 예시
195 4
20 1 8 1

출력 예시
3

힌트
두 번째 장신구와 네 번째 장신구를 만들고 나면 피로도는 197이 된다.

피로도가 200 미만이므로 첫 번째 장신구나 세 번째 장신구 중 하나를 더 제작할 수 있고, 따라서 만들 수 있는 최대 장신구의 개수는 세 개가 된다.

문제 해결 포인트
피로도가 200미만이기만 하면 장신구 하나 더 만들 수 있음.

코드

p, n = map(int, input().split())
arr = list(map(int, input().split()))
arr.sort()

total = 0
for i in range(n) : 
    if p < 200 : 
        total += 1
        p += arr[i]
    else : 
        break
        
print(total)
profile
함께 일 하고 싶은 개발자가 되길 희망합니다.

0개의 댓글