๋ฌธ์ (์ถ์ฒ: 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 ๋ฐฐ์ด์ ๋ง์ง๋ง ๊ฐ์ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 21937_์์ (1) | 2023.12.08 |
---|---|
[Baekjoon] 1283_๋จ์ถํค ์ง์ (1) | 2023.12.07 |
[Baekjoon] 4883_์ผ๊ฐ ๊ทธ๋ํ (2) | 2023.12.05 |
[Baekjoon] 12026_BOJ ๊ฑฐ๋ฆฌ (1) | 2023.12.04 |
[Baekjoon] 2529_๋ถ๋ฑํธ (1) | 2023.12.01 |