1. 유형
그리디
2. 풀이
입력값을 정렬한 후에 아래 그림처럼 나올 수 있도록 +2만큼 건너 뛰면서 탐색한다.
3. 코드
import java.util.Arrays;
import java.util.Scanner;
public class back_11497통나무건너뛰기 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int tc = 1; tc <= T; tc++) {
int n = sc.nextInt();
int inp[] = new int[n];
for (int i = 0; i < n; i++) {
inp[i] = sc.nextInt();
}
Arrays.sort(inp);
int res = 0;
int tmp = 0;
if (inp.length % 2 == 1) {
for (int i = 0; i + 2 < n; i += 2) {
tmp = Math.abs(inp[i] - inp[i + 2]);
res = tmp > res ? tmp : res;
}
for (int i = inp.length - 2; i - 2 >= 1; i -= 2) {
tmp = Math.abs(inp[i] - inp[i - 2]);
res = tmp > res ? tmp : res;
}
} else {
for (int i = 0; i + 2 < n - 1; i += 2) {
tmp = Math.abs(inp[i] - inp[i + 2]);
res = tmp > res ? tmp : res;
}
for (int i = inp.length - 1; i - 2 >= 1; i -= 2) {
tmp = Math.abs(inp[i] - inp[i - 2]);
res = tmp > res ? tmp : res;
}
}
//정점
tmp = Math.abs(inp[inp.length - 1] - inp[inp.length - 2]);
res = tmp > res ? tmp : res;
//끝점과 끝점
tmp = Math.abs(inp[0] - inp[1]);
res = tmp > res ? tmp : res;
System.out.println(res);
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 - 3274] 실버4 두 수의합 (투포인터) (0) | 2020.10.03 |
---|---|
[백준 - 17135] 골드4 캐슬디팬스 (구현) (0) | 2020.10.02 |
[백준 - 19539] 실버1 사과나무 (그리디) (0) | 2020.09.30 |
[백준 - 2668] 골드5 숫자고르기 (0) | 2020.09.29 |
[백준 - 17780] 골드2 - 새로운 게임 (0) | 2020.09.27 |