코딩테스트/SW Expert Academy
[D2] 1859. 백만 장자 프로젝트
셂
2024. 9. 29. 17:29
1859. 백만 장자 프로젝트
✏️ 문제 풀이
- 가격 리스트를 역순으로 순회하면서 판매 가격을 업데이트하고, 이익을 계산하여 누적 합산
ex) 1 1 3 1 2
마지막 날 2(판매가격)를 기준으로 비교
(2-1)
3 > 2 이므로 판매가격 3으로 업데이트
(3-1) + (3-1)
=> 1 + 2 + 2 = 5
- 리스트 슬라이싱: list[start:end:step(간격)]
prices[::-1] → prices 리스트의 마지막 요소부터 첫 번째 요소까지 순회하며 각 요소를 price라는 변수에 할당
N = int(input())
for tc in range(N):
M = int(input())
prices = list(map(int, input().split()))
total_profit = 0 # 총 이익 초기화
sell_price = 0 # 판매 가격 초기화
# 가격 배열을 역순으로 탐색
for price in prices[::-1]:
# 현재 가격이 판매 가격보다 크거나 같으면
if price >= sell_price:
sell_price = price # 판매 가격 업데이트
else:
# 판매 가격에서 현재 가격을 뺀 이익을 총 이익에 추가
total_profit += sell_price - price
print(f"#{tc + 1} {total_profit}")