๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 14719_๋น—๋ฌผ

๋ฟŒ์•ผ._. 2023. 5. 29. 18:35

Gold V

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

< ๋น—๋ฌผ >

 

๋ฌธ์ œ ํ’€์ด

 

๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ธ”๋ก์„ ์ˆœํ™˜ํ•˜๋ฉฐ ์ตœ๋Œ“๊ฐ’ ๋‘ ๊ฐœ๋ฅผ ์ฐพ์•„์•ผ ๋น—๋ฌผ์ด ๊ณ ์ด๋Š” ๊ตฌ๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์ ค ์ฒซ ๋ฒˆ์งธ ๊ฐ’์„ start๋กœ ์ง€์ •ํ•˜๊ณ  start๋ณด๋‹ค ํฐ ๊ฐ’์ด๋‚˜ start๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฐ’ ์ค‘ ์ตœ๋Œ“๊ฐ’์„ end๋กœ ์ง€์ •ํ•œ๋‹ค.

๊ทธ ํ›„ start์™€ end ์‚ฌ์ด์— ๋น—๋ฌผ์ด ๊ณ ์ด๋Š” ์–‘์„ ๊ตฌํ•œ๋‹ค.

 

์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๋กœ๋ฅผ ๋‹ค ์ˆœํ™˜ํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด ๋น—๋ฌผ์ด ๊ณ ์ด๋Š” ์ด๋Ÿ‰์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 my solution (Java)

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

public class _14719_ { // ๋น—๋ฌผ

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

		int h = Integer.parseInt(st.nextToken());
		int w = Integer.parseInt(st.nextToken());

		int arr[] = new int[w];
		int result = 0;

		st = new StringTokenizer(bf.readLine());
		for (int i = 0; i < w; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}

		int num = 0, idx = 0;
		while (idx < w - 1) {
			int start = arr[num];
			int end = arr[num + 1];
			for (int i = num + 1; i < w; i++) {
				if (end <= arr[i]) {
					end = arr[i];
					idx = i;
				}
				if (start < arr[i]) {
					end = arr[i];
					idx = i;
					break;
				}
			}
			int min_val = start;
			if (start > end)
				min_val = end;

			for (int i = num; i < idx; i++) {
				if (min_val - arr[i] > 0) {
					result += min_val - arr[i];
				}
			}
			num = idx;
		}
		System.out.println(result);
	}
}

 

Main

- ์„ธ๋กœ ๊ธธ์ด(h), ๊ฐ€๋กœ๊ธธ์ด(w) ์ž…๋ ฅ

- arr: ๋ธ”๋ก์ด ์Œ“์ธ ๋†’์ด ์ €์žฅ

- ๋ธ”๋ก์„ ์ˆœํ™˜ํ•˜๋ฉฐ ์•ž์—์„œ๋ถ€ํ„ฐ์˜ ์ตœ๋Œ“๊ฐ’(start)๊ณผ ๊ทธ ์ดํ›„๋กœ๋ถ€ํ„ฐ์˜ ์ตœ๋Œ“๊ฐ’(end)์„ ์ฐพ์•„ ๋ธ”๋ก์ด ๊ณ ์ผ ์ˆ˜ ์žˆ๋Š” ๊ตฌ๊ฐ„ ์ฐพ๊ธฐ ->  start์™€ end ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๊ธฐ -> ๊ทธ ์‚ฌ์ด ๊ตฌ๊ฐ„์— ๊ณ ์ด๋Š” ๋น—๋ฌผ์˜ ์–‘ ๊ตฌํ•˜๊ธฐ

 


์ƒ๊ฐ๐Ÿค”