๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 1446_์ง€๋ฆ„๊ธธ

๋ฟŒ์•ผ._. 2023. 12. 6. 20:52

Silver I

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

< ์ง€๋ฆ„๊ธธ >

 

๋ฌธ์ œ ํ’€์ด 

 

์ง€๋ฆ„๊ธธ์„ ArrayLIst์— ์ €์žฅํ•œ ํ›„ ๋ชจ๋“  ๊ธธ์„ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ง€๋ฆ„๊ธธ๋กœ ์ด๋™ ๊ฐ€๋Šฅํ•˜๋ฉด ์ด๋™ ํ›„ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.

 

 

 my solution (Java)

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

public class _1446_ { // ์ง€๋ฆ„๊ธธ

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

		int n = Integer.parseInt(st.nextToken());
		int d = Integer.parseInt(st.nextToken());

		int arr[] = new int[d + 1];
		ArrayList<ArrayList<int[]>> list = new ArrayList<>();
		for (int i = 0; i < d + 1; i++) {
			arr[i] = i;
			list.add(new ArrayList<>());
		}

		for (int i = 0; i < n; i++) {
			st = new StringTokenizer(bf.readLine());
			int start = Integer.parseInt(st.nextToken());
			int end = Integer.parseInt(st.nextToken());
			int num = Integer.parseInt(st.nextToken());
			if (start > d || end > d) {
				continue;
			}
			list.get(start).add(new int[] { end, num });
		}

		for (int i = 0; i < d + 1; i++) {
			for (int j = 0; j < list.get(i).size(); j++) {
				int temp[] = list.get(i).get(j);

				if (arr[temp[0]] > arr[i] + temp[1]) {
					arr[temp[0]] = arr[i] + temp[1];
					for (int k = temp[0]; k < d + 1; k++) {
						if (arr[k] > arr[temp[0]] + (k - temp[0])) {
							arr[k] = arr[temp[0]] + (k - temp[0]);
						}
					}
				}
			}
		}

		System.out.println(arr[d]);
	}
}
๋ณ€์ˆ˜)
n, d : ์ง€๋ฆ„๊ธธ ๊ฐœ์ˆ˜, ๊ณ ์†๋„๋กœ ๊ธธ์ด
arr : ๊ฑฐ๋ฆฌ์˜ ์ตœ์†Ÿ๊ฐ’
list : ์ง€๋ฆ„๊ธธ
start, end, num : ์ง€๋ฆ„๊ธธ์˜ ์‹œ์ž‘ ์œ„์น˜, ๋„์ฐฉ ์œ„์น˜, ์ง€๋ฆ„๊ธธ์˜ ๊ธธ์ด

 

arr ๋ฐฐ์—ด์— ๊ฐ ๊ฑฐ๋ฆฌ๋ฅผ ์ €์žฅํ•˜๊ณ  list์—๋Š” ์ง€๋ฆ„๊ธธ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์ง€๋ฆ„๊ธธ์„ n๊ฐœ ์ž…๋ ฅ๋ฐ›์€ ํ›„ list์— ์ €์žฅํ•œ๋‹ค.

arr ๋ฐฐ์—ด์„ ์ „์ฒด ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ง€๋ฆ„๊ธธ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์ง€๋ฆ„๊ธธ์ด ์žˆ๋‹ค๋ฉด ์ง€๋ฆ„๊ธธ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์ตœ์†Ÿ๊ฐ’์ธ์ง€ ํ™•์ธ ํ›„ ์ตœ์†Ÿ๊ฐ’์ด๋ผ๋ฉด ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. ๊ทธ ํ›„ ๋‚จ์€ ๊ฑฐ๋ฆฌ๋“ค๋„ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

 

์ตœ์ข… ์šด์ „ํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ์˜ ์ตœ์†Ÿ๊ฐ’์ธ arr ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.