728x90
https://www.acmicpc.net/problem/11501
오늘 코테에서 나온 유형과 비슷한 것 같아서 풀어봤는데,, 전혀 비슷하지 않았다 ㅎㅎㅎ
암튼, 이 문제는 거꾸로 포문을 돌면서 max값을 찾고, max 값보다 작을 경우에는 max값과의 차이(즉, 이익) 를 result에 넣어준다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i=0;i<n;i++) {
int d = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[d];
for(int j=0;j<d;j++) {
arr[j]=Integer.parseInt(st.nextToken());
}
long result=0;
int max =0;
for(int j=d-1;j>=0;j--) {
if(max<arr[j]) {
max=arr[j];
}else {
result+=max-arr[j];
}
}
sb.append(result).append("\n");
}
System.out.println(sb);
}
}
'Java' 카테고리의 다른 글
[백준 2579] 계단 오르기 (JAVA) (0) | 2023.05.23 |
---|---|
[백준 1915] 가장 큰 정사각형 (JAVA) (0) | 2023.05.22 |
[백준 1515] 수 이어 쓰기 (JAVA) (0) | 2023.05.17 |
[백준 1527] 금민수의 개수 (JAVA) (0) | 2023.05.12 |
[백준 1644] 소수의 연속합 (JAVA) (0) | 2023.05.07 |