상세 컨텐츠

본문 제목

Stock exchange losses

코딩테스트/알고리즘

by 2^7 2022. 9. 19. 14:38

본문

 

Coding Games and Programming Challenges to Code Better

CodinGame is a challenge-based training platform for programmers where you can play with the hottest programming topics. Solve games, code AI bots, learn from your peers, have fun.

www.codingame.com


발끝에 사서 머리에서 팔아라

목표 : 주식 가격의 변동을 시간 순서대로 분석하여 주식 투자의 최대 손실을 계산하는 것이다.

게임의 입출력 값

  • 입력받는 값
    • 2줄을 입력 받는다.
      • 첫번째 라인 : 주식 가격의 변동 개수 n을 입력 받는다.
      • 두번째 라인 : 주식 가격을 순서에 따라 v1시점부터 vn시점까지 차례대로 입력 받는다.                                                          (각각의 주식가격은 공백으로 구분)
  • 출력해야 하는 값
    • 최대 손실을 출력, 손실은 음수로 표현하며 손실이 없으면 0을 출력
  • 제약사항
    • 0 < n < 100000
    • 0 < v < 2^31

풀이

최대 손실이 발생하기 위해서는 고점에서 주식을 구매하고 저점에서 주식을 팔면 된다.

주식 가격을 하나씩 가져와 설정도니 최댓값보다 크면 새로운 값으로 갱신하고 현재의 손실보다 더 큰 손실이 발생하면 이를 갱신한다.


코드

n = int(input())
high_price = max_loss = 0    #최고가와 최대손실을 저장할 변수 선언

for i in input().split():
    i = int(i)               #입력 받은 문자를 정수형으로 변환

    if i > high_price:      # 현재가가 최고가보다 크면 
        high_price = i      # 최고가를 현재가로 변경
    if i - high_price < max_loss:       #손실이 최대 손실보다 크면
        max_loss = i - high_price       #최대 손실을 변경

print(max_loss)
728x90

'코딩테스트 > 알고리즘' 카테고리의 다른 글

Temperatures  (0) 2022.09.14
The Descent  (1) 2022.09.02

관련글 더보기