https://www.acmicpc.net/problem/11501
11501번: 주식
입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타
www.acmicpc.net
해석 및 팁
이 문제는 배열에 주식의 값을 저장한 후 뒤에서부터 max를 갱신해 가면서 max값이 기존의 주식값보다 작으면 max값을 갱신하고 작으면 그 차이만큼을 sum에 누적 합해주면 됩니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int t = sc.nextInt();
for(int i = 0; i < t; i++) {
int n = sc.nextInt();
long sum = 0;
long max = -1;
long[] arr = new long[n];
for(int j = 0; j < n; j++) arr[j] = sc.nextInt();
for(int j = n - 1; j >= 0; j--) {
if(arr[j] > max) max = arr[j];
else sum += (max-arr[j]);
}
sb.append(sum+"\n");
}
System.out.print(sb);
}
}
'백준' 카테고리의 다른 글
백준 2178 미로 탐색(Java) (0) | 2023.02.12 |
---|---|
백준 9658 돌 게임4(Java) (0) | 2023.02.12 |
백준 4358 생태학(Java) (0) | 2023.02.12 |
백준 24479 알고리즘 수업(Java) (0) | 2023.02.12 |
백준 15665 N과 M (11)(Java) (0) | 2023.02.11 |