알고리즘 문제 풀이/Python

python 백준 25214 크림 파스타

맛대 2023. 2. 27. 10:47

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

로직

  • 1 <= i <= j <= |A| 순서가 지켜져야함
  • 1번 index부터 마지막까지 순회
  • <이번 숫자(num) - 지금까지의 최소값>이 기존의 값보다 더 클 경우 최대값(aj), 해당 위치의 최소값(ai) 갱신
  • 이번 숫자가 aj가 최대값 일 때 해당 위치의 최소값(ai) 보다 작을 경우 nai에 값을 저장
  • 이렇게 저장된 nai와 이번숫자(num)과 기존의 값(aj - ai)를 비교해 나감
N = int(input())
nums = list(map(int,input().split()))
ai,aj,nai = nums[0],nums[0],nums[0]
for num in nums:
    if num - nai > aj - ai:
        aj = num
        ai = nai
    elif num < nai:
        nai = num
    print(aj-ai,end=' ')