Algorithm/Baekjoon

[Algorithm/Baekjoon] ์ฃผ์‹ - 11501 (S2/JAVA)

dpdms2148 2023. 8. 1. 23:17
728x90

๐Ÿ“‘๋ฌธ์ œ๋งํฌ

 

11501๋ฒˆ: ์ฃผ์‹

์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋ณ„๋กœ ์ฒซ ์ค„์—๋Š” ๋‚ ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ N(2 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์ง€๊ณ , ๋‘˜์งธ ์ค„์—๋Š” ๋‚  ๋ณ„ ์ฃผ๊ฐ€๋ฅผ ๋‚˜ํƒ€

www.acmicpc.net

๐Ÿ’ป์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int T = Integer.parseInt(br.readLine());
        for (int t = 0; t < T; t++) {
            int N = Integer.parseInt(br.readLine());
            int[] stock = new int[N];
            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int i = 0; i < N; i++) {
                stock[i] = Integer.parseInt(st.nextToken());
            }
            //๋’ค์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ์ €์žฅ
            int max = stock[N - 1];
            long answer = 0;
            for (int i = N - 2; i >= 0; i--) {
                if (stock[i] <= max) { // ํ˜„์žฌ ์ตœ๋Œ€ ๊ฐ’ ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ํŒŒ๋Š” ๊ฒƒ์ด ์ด๋“
                    answer += max - stock[i];
                } else {// ํ˜„์žฌ ์ตœ๋Œ€ ๊ฐ’ ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ์•ž์œผ๋กœ ์ด ๊ฐ€๊ฒฉ์œผ๋กœ ์‚ฌ๋Š” ๊ฒƒ์ด ์ด๋“
                    max = stock[i];
                }
            }
            sb.append(answer + "\\n");
        }
        System.out.println(sb);
    }
}

โณํšŒ๊ณ 

  • ์ฒ˜์Œ์— ์•ž์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋ฌธ์ œ ์กฐ๊ฑด์— ๋ฏธ๋ž˜๋ฅผ ์˜ˆ์ƒํ•˜๋Š” ๋›ฐ์–ด๋‚œ ์•ˆ๋ชฉ์„ ๊ฐ€์กŒ๋‹ค๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ์—ˆ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ํžŒํŠธ๋ฅผ ์–ป์–ด ๋’ค์—์„œ ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ–ˆ๊ณ , ์ตœ๋Œ€๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋Š” ํŒ”๊ณ , ์•„๋‹Œ๊ฒฝ์šฐ๋Š” ์ตœ๋Œ€๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ์—ˆ๋‹ค.
728x90