728x90
https://www.acmicpc.net/problem/11501
✔ 문제
입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타내는 N개의 자연수들이 공백으로 구분되어 순서대로 주어진다. 날 별 주가는 10,000이하다.
⭐ 코드 분석
처음에는 자연수 T입력 받고
날의 수 입력 받기 N
주가가 오를 때 주식을 사고 주가가 내릴때 주식을 파는것
🌹 코드
T = int(input())
for _ in range(T):
N = int(input())
stock = list(map(int, input().split()))
stock.reverse()
max = stock[0]
sum = 0
for i in range(1, N):
if max < stock[i]:
max = stock[i]
continue
sum += max - stock[i]
print(sum)
1. T = int(input())
T 입력 값 받기 - 반복할 숫자
2. for _ in range(T):
N = int(input()) // 날의 수를 언제로 정할 건지 N 값 입력 받기
stock = list(map(int,input().split())) // 각 날짜의 주식을 split()으로 끊어서 보기
stock.reverse() // 끝 값에 큰게 있으면 안되므로 reverse()를 걸어서 끝값부터 보기
3. for i in range(1,N):
if max < stock[i]:
max = stock[i] 가장 큰값 찾기
continue
sum += max - stock[i] 큰값에서 차이를 빼서 더한값이 이득
print(sum)
'Python > 백준' 카테고리의 다른 글
#19 [python/백준] python 문제집 (0) | 2023.10.25 |
---|---|
#18 [python/백준] 2163번: 초콜릿 자르기 (0) | 2023.10.25 |
#16 [백준/python] 1541번: 잃어버린 괄호 (0) | 2023.10.23 |
#15 [python] 2457번: 공주님의 정원 (0) | 2023.10.22 |
#14 [python] 11399번: ATM (0) | 2023.10.21 |