
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 |