๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 11501_์ฃผ์‹

๋ฟŒ์•ผ._. 2023. 12. 29. 17:08

Silver II

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/11501)

< ์ฃผ์‹ >

 

๋ฌธ์ œ ํ’€์ด 

 

์ฃผ์‹ ๊ฐ€๊ฒฉ์ด ๋†’์€ ๋‚ ์— ์ฃผ์‹์„ ํŒ”์•„์•ผ ํ•˜๋ฏ€๋กœ ๋’ค์—์„œ๋ถ€ํ„ฐ ๊ฐ’์„ ํ™•์ธํ•ด์„œ ์ฃผ์‹์˜ ๊ฐ€๊ฒฉ์ด ๋†’์€ ๋‚ ์„ ์ฐพ๋Š”๋‹ค.

 

 my solution (Java)

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

public class _11501_ { // ์ฃผ์‹

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		int t = Integer.parseInt(bf.readLine());
		for (int i = 0; i < t; i++) {
			int n = Integer.parseInt(bf.readLine());

			st = new StringTokenizer(bf.readLine());

			int arr[] = new int[n];
			long result = 0;

			for (int j = 0; j < n; j++) {
				arr[j] = Integer.parseInt(st.nextToken());
			}

			int max_value = arr[n - 1];
			for (int j = n - 2; j >= 0; j--) {
				if (max_value < arr[j]) {
					max_value = arr[j];
				} else {
					result += max_value - arr[j];
				}
			}
			bw.write(result + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
t : ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ์ˆ˜
n : ๋‚ ์˜ ์ˆ˜
arr : ๋‚  ๋ณ„ ์ฃผ๊ฐ€
result : ์ตœ๋Œ€ ์ด์ต
max_value : ์ฃผ๊ฐ€ ์ตœ๋Œ“๊ฐ’

 

๋ฐฐ์—ด์„ ๋’ค์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๋Š”๋‹ค. ํ˜„์žฌ ๊ตฌํ•œ ์ตœ๋Œ“๊ฐ’๋ณด๋‹ค ๊ฐ’์ด ํฌ๋‹ค๋ฉด ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด ์ฃผ๊ณ  ํฌ์ง€ ์•Š๋‹ค๋ฉด ์ด์ต์„ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ (์ตœ๋Œ“๊ฐ’-์ฃผ๊ฐ€)๋ฅผ ๊ตฌํ•ด ์ด์ต์— ๊ฐ’์„ ๋”ํ•œ๋‹ค.