코딩테스트/SW Expert Academy / / 2024. 9. 29. 17:29

[D2] 1859. 백만 장자 프로젝트

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}")

 

 

'코딩테스트 > SW Expert Academy' 카테고리의 다른 글

[D2] 1974. 스도쿠 검증  (0) 2024.09.29
[D2] 1204. 최빈수 구하기  (0) 2024.09.29
[D2] 2005. 파스칼의 삼각형  (0) 2024.09.29
[D2] 2001. 파리 퇴치  (0) 2024.09.29
[D2] 1954. 달팽이 숫자  (0) 2024.09.19
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유