백준 11501 - 주식

Updated:

Java

11501 번 - 주식

문제

접근 방법

입력받은 주가들을 뒤에서 부터 확인하며 그리디로 해결되는 문제이다.

코드

import java.util.*;
import java.io.*;

public class Main {
	static int n;
	static long result;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	StringTokenizer stk;
    	int tc = stoi(br.readLine());
    	int curN, top;
    	while(tc-- != 0) {
    		result = 0;
    		top = -1;
    		n = stoi(br.readLine());
    		stk = new StringTokenizer(br.readLine());
    		int[] arr = new int[n];

    		for(int i = 0; i < n; i++) {
    			arr[i] = stoi(stk.nextToken());
    		}
			// 뒤에서 부터 주가를 확인한다.
    		for(int i = n - 1; i >= 0; i--) {
    			curN = arr[i];
				// 더 높은 주가가 있으면
    			if(top < curN) {
    				top = curN;
    			}
    			else {
    				result += top - curN;
    			}
    		}

    		System.out.println(result);
    	}

    	br.close();
	}

	static int stoi(String str) {
    	return Integer.parseInt(str);
    }
}

총평

후기

개선할 점