ALGORITHM/PYTHON

백준 BAEKJOON 32529번 래환이의 여자친구 사귀기 대작전 [PYTHON/파이썬]

칼코 2024. 12. 1. 17:53
반응형

 

 

 

 

 

백준 BAEKJOON 32529번 래환이의 여자친구 사귀기 대작전 [PYTHON/파이썬]


<문제 출처> (BRONZE Ⅱ)

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

 

 

 

 

 

 

 

 

<풀이>

누적합을 활용하여 풀었다.

먼저 체중 감소량 A를 입력받아 뒤집어줬다.

for문을 통해 누적합 리스트 PrefixSum를 채워준 뒤

가장 마지막 인덱스가 M 보다 작으면 다이어트 실패이기 때문에 -1을 출력,

그렇지 않다면 M보다 크거나 같은 인덱스를 찾아 몇일차인지 출력하면 된다.

 

 

 

 

 

 

<코드>

import sys
input = sys.stdin.readline

N, M = map(int, input().split())
A = [0] + list((map(int, input().split())))[::-1]
PrefixSum = [0] * (N + 1)  # 누적합 리스트

for i in range(1, N + 1):
    PrefixSum[i] = PrefixSum[i - 1] + A[i]

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

 

 

 

 

 

반응형