반응형
백준 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
반응형
'ALGORITHM > PYTHON' 카테고리의 다른 글
백준 BAEKJOON 32209번 다음 달에 봐요 [PYTHON/파이썬] (1) | 2024.09.06 |
---|---|
백준 BAEKJOON 32184번 디미고에 가고 싶어! [PYTHON/파이썬] (0) | 2024.09.05 |
백준 BAEKJOON 32132번 PlayStation이 아니에요 [PYTHON/파이썬] (1) | 2024.09.02 |
백준 BAEKJOON 32193번 승강장의 깊이 [PYTHON/파이썬] (0) | 2024.08.29 |
백준 BAEKJOON 32068번 보물 찾기 [PYTHON/파이썬] (0) | 2024.08.22 |