상세 컨텐츠

본문 제목

[SWEA] 1859. 백만 장자 프로젝트

💯ProblemSolving/문제 풀이-Java

by :부셔져버린개발자 2024. 10. 29. 09:17

본문

       문제 요약        

- 문제

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);
		}
	}

}
728x90

관련글 더보기