https://www.acmicpc.net/problem/11501


1. 아이디어
최대 이익을 내려면 현재 날짜보다 이후 날짜 중 더 비싼 날이 있을 때 이중 가장 비싼 날 팔아야한다. 이를 위해 뒤에서부터 순회하며 해당 날짜의 가격이 현재까지 찾은 최대 가격보다 싸면 사서 팔고 비싸면 최대 가격을 갱신하는 과정을 반복했다.
2. 문제풀이
아이디어 그대로 구현했다.
3. 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for (int tc = 1; tc <= T; tc++) {
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
long sum = 0;
int max = 0;
for (int i = N - 1; i >= 0; i--) {
if (arr[i] > max) max = arr[i];
else sum += max - arr[i];
}
sb.append(sum).append("\n");
}
bw.write(sb.toString());
bw.flush();
}
}
4. 후기

'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 16479번 - 컵라면 측정하기 [Java] (0) | 2025.03.18 |
---|---|
[백준] 1252번 - 이진수 덧셈 [Java] (0) | 2025.03.14 |
[백준] 2089번 - -2진수 [Java] (0) | 2025.03.12 |
[백준] 17070번 - 파이프 옮기기 1 [Java] (0) | 2025.03.12 |
[백준] 17069번 - 파이프 옮기기 2 [Java] (0) | 2025.03.10 |