[백준] 11501번: 주식 - python

2023. 4. 8. 18:26백준 & 프로그래머스

문제보기

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

 

11501번: 주식

입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타

www.acmicpc.net

 

 

 

 

풀이 및 코드

 

필자가 해석하기에 해당 문제에서는 함정이 있었다. 

  1. 원하는 만큼 가지고 있는 주식을 판다. -> 최대이익을 얻기 위해서는 전부 팔거나 전부 사거나 두가지 경우만 존재했다. 
  2. 아무것도 안한다. -> 일단 구매하고 동일한 가격에서 판매해도 동일하다

 

필자는 뒤에 더 비싼 가격이 나온다면 구매하고, 더 비싼 가격이 나오지 않는다면 해당 가격에서 판매 하는 두가지 원칙을 기반으로 구현했다. 따라서 for문을 뒤에서 부터 앞으로 돌리면서 최대 가격인 m을 업데이트 해주었다. 따라서 만일 다음 가격이 m보다 작다면 해당 가격으로 구매하고 만일 m보다 크다면 구매한 것들을 m의 가격으로 판매했다.

 

 

 

 

 

해당문제는 실버 2에 랭크되어 있다.