๐ก Info
๋ด์ฉ
2์ฐจ์ ์ธ๊ณ์ ๋ธ๋ก์ด ์์ฌ์๋ค. ๋น๊ฐ ์ค๋ฉด ๋ธ๋ก ์ฌ์ด์ ๋น๋ฌผ์ด ๊ณ ์ธ๋ค.
๋น๋ ์ถฉ๋ถํ ๋ง์ด ์จ๋ค. ๊ณ ์ด๋ ๋น๋ฌผ์ ์ด๋์ ์ผ๋ง์ผ๊น?
๐ฅ์ ๋ ฅ ์กฐ๊ฑด
๐ค์ถ๋ ฅ ์กฐ๊ฑด
์ ์ถ๋ ฅ ์์
4 4
3 0 1 4
5
4 8
3 1 2 3 4 1 1 2
5
3 5
0 0 0 2 0
0
์ค์ ํ์ด ์๊ฐ : 30๋ถ
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int H = sc.nextInt();
int W = sc.nextInt();
int[] arr = new int[W];
for(int i=0; i<W; i++) {
arr[i] = sc.nextInt();
}
int resultOne = 0;
int resultTwo = 0;
for(int i=1; i<W-1; i++) {
if(arr[i-1] > arr[i+1]) {
resultOne = arr[i+1] - arr[i];
}
if(arr[i-1] < arr[i+1]) {
resultTwo = arr[i-1] - arr[i];
}
}
System.out.print(resultOne + resultTwo);
}
}
//before
int resultOne = 0;
int resultTwo = 0;
for(int i=1; i<W-1; i++) {
if(arr[i-1] > arr[i+1]) {
resultOne = arr[i+1] - arr[i];
}
if(arr[i-1] < arr[i+1]) {
resultTwo = arr[i-1] - arr[i];
}
}
System.out.print(resultOne + resultTwo);
}
}
//after
int result = 0;
for(int i = 1; i < W - 1; i++) {
int minH = Math.min(maxH(arr, 0, i), maxH(arr, i + 1, W)); //i๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์ ์๋ ๋์ด ์ค ์ต๋ ๋์ด | ์ค๋ฅธ์ชฝ์ ์๋ ๋์ด ์ค ์ต๋ ๋์ด๋ฅผ ๋น๊ต -> ๋ ์์ ์ ์ฐพ๊ธฐ
if(arr[i] < minH) { // ํ์ฌ ์์น์ ๊ฐ์ด ์ต์๊ฐ๋ณด๋ค ์์ ๋
result += minH - arr[i]; // ๋น๋ฌผ์ ์ ๊ณ์ฐํ์ฌ ๊ฒฐ๊ณผ์ ๋ํจ
}
}
System.out.print(result);
}
// ์ฃผ์ด์ง ๋ฒ์์์ ์ต๋ ๋์ด๋ฅผ ์ฐพ๋ ํจ์
static int maxH(int[] arr, int start, int end) {
int max = 0;
for(int i = start; i < end; i++) {
max = Math.max(max, arr[i]);
}
return max;
}
}
์ค์ ํ์ด ์๊ฐ : 46๋ถ(์ฒซ ํ์ด ํฌํจ)
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int H = sc.nextInt();
int W = sc.nextInt();
int[] arr = new int[W];
for(int i=0; i<W; i++) {
arr[i] = sc.nextInt();
}
int result = 0;
for(int i = 1; i < W - 1; i++) {
int minH = Math.min(maxH(arr, 0, i), maxH(arr, i + 1, W)); //i๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์ ์๋ ๋์ด ์ค ์ต๋ ๋์ด | ์ค๋ฅธ์ชฝ์ ์๋ ๋์ด ์ค ์ต๋ ๋์ด๋ฅผ ๋น๊ต -> ๋ ์์ ์ ์ฐพ๊ธฐ
if(arr[i] < minH) { // ํ์ฌ ์์น์ ๊ฐ์ด ์ต์๊ฐ๋ณด๋ค ์์ ๋
result += minH - arr[i]; // ๋น๋ฌผ์ ์ ๊ณ์ฐํ์ฌ ๊ฒฐ๊ณผ์ ๋ํจ
}
}
System.out.print(result);
}
// ์ฃผ์ด์ง ๋ฒ์์์ ์ต๋ ๋์ด๋ฅผ ์ฐพ๋ ํจ์
static int maxH(int[] arr, int start, int end) {
int max = 0;
for(int i = start; i < end; i++) {
max = Math.max(max, arr[i]);
}
return max;
}
}