https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LrsUaDxcDFAXc
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
자신보다 큰 인덱스에 있는 값들 중에 최대 값을 찾으면 됨
여기 문제에서는 max-price[i] 로 값을 구하기 때문에 본인 인덱스도 포함해서 최대 값을 찾아도 상관없음
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
static int T;
static int N;
static long[] price;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
T = Integer.parseInt(br.readLine());
for (int test = 1; test <= T; test++) {
N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
price = new long[N];
for (int i = 0; i < N; i++) {
price[i] = Integer.parseInt(st.nextToken());
}
long max = price[N - 1];
// 오른쪽에서 가장 max 인 값 찾으면 됨
long sum = 0;
for (int i = N - 1; i >= 0; i--) {
max = Math.max(price[i], max);
sum += (max - price[i] > 0) ? max - price[i] : 0;
}
System.out.println("#" + test + " " + sum);
}
}
}
[SWEA] 5202. 화물도크 (0) | 2024.10.30 |
---|---|
[SWEA] 5201. 컨테이너 운반 (0) | 2024.10.30 |
[프로그래머스] 이중우선순위큐 (0) | 2024.10.25 |
[프로그래머스] N개의 최소공배수 (0) | 2024.10.25 |
[프로그래머스] 짝지어 제거하기 (0) | 2024.10.25 |