class Solution
{
	public static void main(String args[]) throws Exception
	{

		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();


		for(int test_case = 1; test_case <= T; test_case++)
		{
		
		int a= sc.nextInt();
		
		int[] x = new int [a];
		int max=0;
		long sum=0;
		
		for(int i=0; i<a; i++) {
			x[i]=sc.nextInt();
		}

		for(int i=a-1; i>=0; --i) {
			if(max<x[i]) {
				max=x[i];
			}else {
				sum += max-x[i];
			}
		}
		
		System.out.println("#"+test_case+" "+sum);
		
		
		}
	}
}

3 10 12

라고 생각해 보았을때

3원에 사고 10원에 사고 12원에 팔면  이득은 11원이다

뒤에서부터 생각하면 된다.

12원이 10원보다 작지 않으니  else 로 빠지고

12 - 10 하여 2가 되고 max값은 변하지 않는다

 

12원이 3원보다 작지 않으니 else 로 빠지고

12 -3 하여 9가 되고 2+9 =11 이 된다.

'알고리즘(종합) > Lv.2' 카테고리의 다른 글

프로그래머스 - 귤 고르기  (0) 2023.02.15
2001 - 파리퇴치  (0) 2022.11.14
1204 - 최빈수 구하기  (0) 2022.11.14
1954 - 달팽이 숫자  (0) 2022.11.13
1926 - 간단한 369 게임  (0) 2022.11.13
복사했습니다!