반응형
1859. 백만 장자 프로젝트
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제 풀이
- N일 동안 매매가를 알아내 낼 수 있는 최대 이득을 출력해라
- 하루에 하나만 살 수 있다.
- 팔 때는 여러 개 가능하다.
해결 포인트
- 뒤에서부터 확인한다.
- max 값을 뒤에서부터 알아낸다.
- 현재 값이 max 값보다 작을 경우, [max - 현재값] 만큼에 이득을 본다.
- 현재 값이 max 값보다 클 경우, max를 현재 값으로 변경한다.
코드
import java.util.Scanner;
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 N = sc.nextInt();
int [] nums = new int[N];
for(int n=0;n<N;n++) {
nums[n] = sc.nextInt();
}
long max = nums[N-1];
long result = 0;
for(int i=N-2;i>=0;i--) {
if(max > nums[i]) {
result += max - nums[i];
}
else {
max = nums[i];
}
}
System.out.println("#" + test_case + " " + result);
}
}
}
반응형
'CodingTEST' 카테고리의 다른 글
[SW Expert D2] 2007. 패턴 마디의 길이 (0) | 2023.11.13 |
---|---|
[SW Expert D2] 1926. 간단한 369게임 (0) | 2023.11.13 |
[백준 22862] 가장 긴 짝수 연속한 부분 수열 (JAVA) (0) | 2023.11.13 |
[백준 20922] 겹치는 건 싫어 (JAVA) (0) | 2023.11.13 |
[백준 14567] 선수과목 (JAVA) (2) | 2023.11.09 |