https://www.acmicpc.net/problem/2262
์ฝ๋
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
//int[] arr = new int[n];
List<Integer> list = new ArrayList<Integer>();
int min = 0;
for(int i=0; i<n; i++)
list.add(scan.nextInt());
int max = n; // ๊ฐ์ฅ ๋ญํน์ด ๋ฎ์(์ซ์๊ฐ ๋์) ์ ์
for(int i=0; i<n-1; i++) {
int idx = list.indexOf(max); // ๋ญํน์ด ๋ฎ์ ์ ์์ ์ธ๋ฑ์ค
// ๋ญํน์ด ๊ฐ์ฅ ๋ฎ์ ์ ์๊ฐ ๊ฐ์ฅ ์์ ์์๊ฒฝ์ฐ => ๊ทธ ๋ค ์ ์์์ ์ฐจ์ด
if(idx == 0)
min += list.get(idx) - list.get(idx + 1);
// ๋ญํน์ด ๊ฐ์ฅ ๋ฎ์ ์ ์๊ฐ ๊ฐ์ฅ ๋์ ์์๊ฒฝ์ฐ => ๊ทธ ์ ์ ์์์ ์ฐจ์ด
else if(idx == list.size()-1)
min += list.get(idx) - list.get(idx -1);
// ๋ญํน์ด ๊ฐ์ฅ ๋ฎ์ ์ ์๊ฐ ์ค์ ์ด๋๊ฐ์ ์์๊ฒฝ์ฐ => ์, ๋ค ์ ์์ค ์ฐจ์ด๊ฐ ์์ ์ ์์ ๋งค์นญ
else
min += Math.min(list.get(idx) - list.get(idx-1), list.get(idx) - list.get(idx+1));
list.remove(idx); // ๋ญํน์ด ๊ฐ์ฅ ๋์ ์ ์๋ ๋งค์นญ์ด ๋๋ฌ์ผ๋ฏ๋ก ์ ๊ฑฐ,
max --;
}
System.out.println(min);
scan.close();
}
}
ํ์ด
๋ ์ ์์ ๋ญํน ์ฐจ์ด์ ์ด ํฉ์ ์ต์๊ฐ์ ๊ตฌํ๋๋ฐ ..
๋ ผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ญํน์ด ๋ฎ์ ์ ์(์ซ์๊ฐ ํฐ ์)๊ฐ ํ ๋๋จผํธ์์ ์์ฃผ ์ฌ๋ผ๊ฐ์๋ก ํฉ์ ํฌ๊ฒ ๋์จ๋ค.
๋ฐ๋ผ์ ๋ญํน์ด ๋ฎ์ ์ ์๋ถํฐ ์ฐพ์์ ๋งค์นญ์ ์ํจ๋ค.
1. ๋ญํน์ด ๊ฐ์ฅ ๋ฎ์ ์ ์๋ฅผ ์ฐพ๋๋ค.(์ซ์๊ฐ ๊ฐ์ฅ ๋์ ์ ์)
2. 1.์์ ์ฐพ์ ์ ์์ ์ข, ์ฐ ์ ์์์ ์ฐจ์ด์ ์ต์๊ฐ์ ์ฐพ๋๋ค.
2-1. 2์์ ์ฐพ์ ์ ์๊ฐ ๊ฐ์ฅ ์ผ์ชฝ => ๊ทธ ์ ์์ ์ค๋ฅธ์ชฝ,
2-1. 2์์ ์ฐพ์ ์ ์๊ฐ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ => ๊ทธ ์ ์์ ์ผ์ชฝ,
2-1. 2์์ ์ฐพ์ ์ ์๊ฐ ์ค์ ์ด๋๊ฐ => ๊ทธ ์ ์์ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ๊ณผ ๋น๊ต
3. ๋ญํน์ด ๊ฐ์ฅ ๋ฎ์ ์ ์์ ์ธ์ ํ ์ ์์์ ์ต์๊ฐ์ ๊ตฌํ์ผ๋ฉด, ๋ญํน์ด ๊ฐ์ฅ ๋ฎ์ ์ ์๋ ์ ๊ฑฐํ๊ณ ๊ทธ ๋ค์์ผ๋ก ๋ญํน์ด ๋ฎ์ ์ ์๋ฅผ ์ฐพ์ 1~2์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 11586๋ฒ: ์ง์ ๊ณต์ฃผ๋์ ๋ง๋ฒ ๊ฑฐ์ธ(๋ฌธ์์ด) (0) | 2020.02.06 |
---|---|
[๋ฐฑ์ค] 11724๋ฒ: ์ฐ๊ฒฐ ์์์ ๊ฐ์(dfs, bfs) (0) | 2020.02.06 |
[๋ฐฑ์ค] 5218๋ฒ: ์ํ๋ฒณ ๊ฑฐ๋ฆฌ(๋ฌธ์์ด) (0) | 2020.02.06 |
[๋ฐฑ์ค] 11403๋ฒ: ๊ฒฝ๋ก ์ฐพ๊ธฐ(dfs, bfs) (0) | 2020.02.05 |
[๋ฐฑ์ค] 1475๋ฒ: ๋ฐฉ ๋ฒํธ(๋ฌธ์์ด, ๊ตฌํ) (0) | 2020.02.05 |
๋๊ธ