SWEA

[SWEA] 1859.백만장자 프로젝트

Toproot 2022. 1. 1. 23:30
728x90
728x90

미래를 보는 원재의 시세차익을 계산해 주는 문제.

처음 문제를 보고 N의 의미가 N개마다 끊어서 미래를 볼 수 있는 줄 알고,

N개씩의 시세차익을 합치는 코드를 짰다.

하지만 계속해서 Fail을 당한 후 다시 문제를 꼼꼼히 검토했고,

리스트의 시세차익을 계산해 주는 calPrice() 클래스를 만들어

TestCase마다 시세차익을 계산하는 알고리즘을 구성했다.

📌 학습한 내용

1. 문제를 꼼꼼히 잘 읽어보자.
2. 클래스를 만들어서 사용하면 매우 편리하다.
3. 앞에서부터 했을 때 막히면, 반대로 생각하는 지혜를 가지기!
TC = int(input())

def calPrice(Days):
  MaxNum = Day[-1] # 맨 뒤의 숫자부터 크기 비교
  Day.reverse() # 역순으로 바꾼 후 탐색
  Value = 0 # 시세차익
  for i in Day:
    if i > MaxNum:
      MaxNum = i
    else:
      Value += MaxNum - i
  return Value

for tc in range(TC):
  N = int(input())
  Day = list(map(int, input().split()))
  Result = 0
  Result += calPrice(Day)

  print('#{}'.format(tc+1),Result)
728x90
728x90