만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

비트코인 투자

면접 대비

시간 제한2초메모리 제한512 MB

요약
비트코인의 일별 가격이 주어질 때, 하루에 사서 그날 이후에 팔아 얻을 수 있는 최대 이익을 구한다.
난이도

쉬움10점 중 3점

유형
배열, 그리디, 누적 합
정답자
아직 제출이 없습니다

문제

비트코인은 사토시 나카모토라는 이름으로 공개된 디지털 자산이자 결제 시스템이다. 이 이름이 실명인지 가명인지, 한 사람인지 여러 사람인지는 알려지지 않았다.

비트코인 한 개의 유로 가격은 빠르게 변한다. 어느 날에는 800유로였다가 이틀 뒤에 20유로로 떨어지기도 한다.

앞으로의 비트코인 대 유로 환율을 모두 안다고 하자. 최대한 큰 이익을 내고 싶다. 처음에는 비트코인이 없다. 어느 날에 비트코인을 정확히 한 개 사고, 같은 날이나 그 뒤의 어느 날에 판다. 판 가격에서 산 가격을 뺀 값이 이익이다.

예를 들어 앞으로 10일 동안 비트코인 한 개의 가격이 다음과 같다고 하자.

일자12345678910
가격511428107436

1일에 5유로로 사서 2일에 11유로로 팔면 이익은 6유로다. 4일에 2유로로 사서 6일에 10유로로 팔면 이익은 8유로이고, 이 가격으로 낼 수 있는 가장 큰 이익은 8유로다.

환율 목록이 주어지면 낼 수 있는 가장 큰 이익을 구하라. 사는 것도 파는 것도 한 번뿐이고, 파는 날은 사는 날보다 앞설 수 없다. 같은 날에 사고팔면 이익이 0이므로 답은 음수가 되지 않는다.

입력

첫째 줄에 환율의 개수 nn이 주어진다 (1≤n≤1000001 \le n \le 100000).

둘째 줄에 nn일 동안 비트코인 한 개의 유로 가격이 정수 nn개로 주어진다. 각 가격은 1 이상 10000 이하다.

출력

낼 수 있는 가장 큰 이익을 출력한다.

예제5

  1. 예제 1

    입력
    10
    5 11 4 2 8 10 7 4 3 6
    
    예상 출력
    8
    
  2. 예제 2

    입력
    1
    5
    
    예상 출력
    0
    
  3. 예제 3

    입력
    5
    10 8 6 4 2
    
    예상 출력
    0
    
  4. 예제 4

    입력
    5
    1 2 3 4 5
    
    예상 출력
    4
    
  5. 예제 5

    입력
    2
    1 10000
    
    예상 출력
    9999