ALGORITHM/PYTHON

백준 BAEKJOON 32141번 카드 게임 (Easy) [PYTHON/파이썬]

칼코
반응형

 

 

 

 

 

 

백준 BAEKJOON 32141번 카드 게임 (Easy) [PYTHON/파이썬]


<문제 출처> (BRONZE Ⅱ)

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

 

 

 

 

 

 

 

<풀이>

오름차순으로 정렬된 카드의 공격력을 누적합 리스트 S로 만들었다.

즉, 누적합의 마지막 인덱스의 요소가 모든 카드의 공격력의 합과 같다.

그러니 먼저 모든 카드를 사용하여 상대를 죽일 수 없으면 -1을 출력하고

그렇지 않다면 for문으로 순회하여 몇 개의 카드를 사용해야

상대를 죽일 수 있는지 출력하면 된다.

 

 

 

 

 

 

 

 

<코드>

N, H = map(int, input().split())
d = [0] + list(map(int, input().split()))
S = [0] * (N + 1)  # 공격력 누적합 배열

for k in range(1, N + 1):
    S[k] = S[k - 1] + d[k]

if H > S[-1]:
    print(-1)
else:
    for i in range(1, N + 1):
        if H <= S[i]:
            print(i)
            break

 

 

 

 

 

 

 

 

 

반응형