๋ฌธ์ (์ถ์ฒ: 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 ์ค ์ต์๊ฐ์ ์ฐพ๊ธฐ -> ๊ทธ ์ฌ์ด ๊ตฌ๊ฐ์ ๊ณ ์ด๋ ๋น๋ฌผ์ ์ ๊ตฌํ๊ธฐ
์๊ฐ๐ค

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 23747_์๋ (0) | 2023.05.30 |
---|---|
[Baekjoon] 17265_๋์ ์ธ์์๋ ์ํ๊ณผ ํจ๊ป (0) | 2023.05.30 |
[Baekjoon] 16509_์ฅ๊ตฐ (1) | 2023.05.28 |
[Baekjoon] 14217_๊ทธ๋ํ ํ์ (0) | 2023.05.26 |
[Baekjoon] 1937_์์ฌ์์ด ํ๋ค (1) | 2023.05.25 |