Updated:

๐Ÿ–๏ธย solution

import sys

"""
[์‹œ๊ฐ„]
1) 14:10 ~ 14:34
[์š”์•ฝ]
1) ์ฃผ์‹์„ 'ํ•˜๋‚˜' ์‚ฌ๊ธฐ/์›ํ•˜๋Š” ๋งŒํผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฃผ์‹์„ ํŒ”๊ธฐ/์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•˜๊ธฐ
    - ๋‚  ๋ณ„๋กœ ์ฃผ์‹์˜ ๊ฐ€๊ฒฉ์„ ์•Œ๋ ค์ฃผ์—ˆ์„ ๋•Œ, ์ตœ๋Œ€ ์ด์ต์ด ์–ผ๋งˆ๋‚˜ ๋˜๋Š”์ง€ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
[์ „๋žต]
1) max() ์ด์šฉํ•ด ๋ฌธ์ œ ํ•ด๊ฒฐ
    - max - ํ˜„์žฌ โ‰ฅ 0: ์‚ฌ๊ธฐ
    - max - ํ˜„์žฌ โ‰ค 0: ํŒ”๊ธฐ
    => ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋•Œ๋ฌธ์— ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ถˆ๊ฐ€
2) ๋ฆฌ์ŠคํŠธ ์—ญ์ˆœ์œผ๋กœ ์ ‘๊ทผ
"""
for _ in range(int(sys.stdin.readline())):
    N, price_list = int(sys.stdin.readline()), list(map(int, sys.stdin.readline().split()))
    price_list.reverse()
    max_price, result = price_list[0], ย 0
    for i in range(1, N):
        profit = max_price - price_list[i]
        if profit >= 0:
            result += profit
        else:
            max_price = price_list[i]
    print(result)

๐Ÿ’กย idea

  • 1) ๋ฆฌ์ŠคํŠธ ์—ญ์ˆœ์œผ๋กœ ๋’ค์ง‘๊ณ  linear search
    • ์ž…๋ ฅ๊ฐ’์˜ ํฌ๊ธฐ์™€ ์‹œ๊ฐ„ ์ œํ•œ์ƒ ์ด์ค‘ ๋ฃจํ”„ ์ด์ƒ ์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€
    • ๊ตฌ๊ฐ„์—์„œ ์ตœ๋Œ€๊ฐ’๊ณผ ํ˜„์žฌ ๊ฐ€๊ฒฉ ๋น„๊ต
      • ์–‘์ˆ˜๋ฉด result์— ๋ฐ˜์˜
      • ์Œ์ˆ˜๋ฉด ๋ฐ˜์˜ํ•˜์ง€ ์•Š๊ณ , ๊ตฌ๊ฐ„์˜ ์ตœ๋Œ€๊ฐ’์„ ํ˜„์žฌ ๊ฐ€๊ฒฉ์œผ๋กœ ๋ณ€๊ฒฝ

Leave a comment