๐Algorithm/๐ฅBaekjoon
[Baekjoon] 11497_ํต๋๋ฌด ๊ฑด๋๋ฐ๊ธฐ
๋ฟ์ผ._.
2023. 9. 20. 11:34
๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/11497)
< ํต๋๋ฌด ๊ฑด๋๋ฐ๊ธฐ >
๋ฌธ์ ํ์ด
์ต์ ๋์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ํต๋๋ฌด๋ฅผ ์ ๋ ฌ ํ ์์ ํต๋๋ฌด๋ถํฐ ๋ฐฐ์ด๋ก ์น๋ฉด ์ ๋๋ถํฐ ์ฑ์ ๋ฃ์ผ๋ฉด ๋๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class _11497_ { // ํต๋๋ฌด ๊ฑด๋๋ฐ๊ธฐ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int t = Integer.parseInt(bf.readLine());
for (int i = 0; i < t; i++) {
int n = Integer.parseInt(bf.readLine());
st = new StringTokenizer(bf.readLine());
int arr[] = new int[n];
for (int j = 0; j < n; j++) {
arr[j] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
int result[] = new int[n];
int start = 0, end = n - 1, idx = 0;
for (int j = 0; j < n; j++) {
if (idx % 2 == 0) {
result[start++] = arr[idx++];
} else {
result[end--] = arr[idx++];
}
}
int answer = Math.abs(result[n - 1] - result[0]);
for (int j = 0; j < n - 1; j++) {
if (answer < Math.abs(result[j] - result[j + 1]))
answer = Math.abs(result[j] - result[j + 1]);
}
bw.write(answer + "\n");
}
bw.flush();
}
}
Main
๋ณ์)
t : ํ ์คํธ ์ผ์ด์ค
n : ํต๋๋ฌด์ ๊ฐ์
arr : ํต๋๋ฌด ๋์ด ์ ์ฅ ๋ฐฐ์ด
result : ํต๋๋ฌด ์ธ์ฐ๋ ๋ฐฉ๋ฒ ์ ์ฅ ๋ฐฐ์ด
start, end : ํต๋๋ฌด ์ธ์ธ ์์น
idx : ํ์ฌ ํต๋๋ฌด
answer : ์ต์ ๋์ด๋
- ํ ์คํธ ์ผ์ด์ค(t) ์ ๋ ฅ
- ํ ์คํธ ์ผ์ด์ค ์(t)๋งํผ ๋ฐ๋ณต
: ํต๋๋ฌด์ ๊ฐ์(n) ์ ๋ ฅ
: ํต๋๋ฌด ๊ฐ์(n)๋งํผ ํต๋๋ฌด ๋์ด ์ ๋ ฅ๋ฐ์ ์ ์ฅ(arr)
: arr ์ ๋ ฌ
: ์ ๋ ฌํ ๋ฐฐ์ด arr์ ์๋ก์ด ๋ฐฐ์ด์ ๋งจ ์๊ณผ ๋งจ๋ค๋ถํฐ ์ฑ์ ๋ฃ์
: ์ต์ ๋์ด๋ ๊ตฌํ ํ ์ถ๋ ฅ