๐ ๏ธ ๋ฌธ์ ๐ ๏ธ
๐๏ธ ์ค๋ช ๐๏ธ
๋ ์๋ฅผ ๊ณจ๋์ ๋(๊ฐ์ ์์ผ ์๋ ์๋ค), ๊ทธ ์ฐจ์ด๊ฐ M ์ด์์ด๋ฉด์ ์ ์ผ ์์ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ
→ ์ฐจ์ด๋ฅผ ๋น๊ตํ ๋ ์๊ฐ ๊ฐ์ ์์ผ ์๋ ์๊ณ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ต์๊ฐ์ ๊ตฌํด์ผ ํ๋ค.
๋ ์์ ์ฐจ์ด๋ฅผ ๊ตฌํด์ผํ๋๋ฐ ์ ๋ ฅ๋ ์์ด์ด ์ ๋ ฌ๋์ด ์์ง ์์ผ๋ฉด ๋ชจ๋ ์์๋ผ๋ฆฌ ๋น๊ตํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด 5๊ฐ์ ์์๊ฐ ์์ผ๋ฉด ํ๋์ ์์์ ๋๋จธ์ง 4๊ฐ์ ์์๋ฅผ ๋ชจ๋ ๋น๊ตํด๋ณด์์ผ ํ๋ค.
์ด ๋ฐ๋ณต๋๋ ํ์๋ 4 X 3 X 2 X 1 = 24 ์ด๋ค.
ํ์ง๋ง ์ด ๋ฌธ์ ์์ ์์ด์ ๊ธธ์ด๋ ์ต๋ 100,000๊น์ง ๊ฐ๋ฅํ๊ธฐ์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.
๊ทธ๋ ๋ค๋ฉด ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ์์๋ฅผ ๋น๊ตํ๋ ๋ฐ๋ณต ํ์๋ฅผ ์ค์ฌ์ผํ๋ค.
๋จผ์ , ์์ด์ ์ ๋ ฌํ๋ค.
๊ทธ๋ฌ๋ฉด ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ ์์ ์ฐจ์ด๊ฐ ์ด๋ป๊ฒ ๋ณํํ ์ง ์์ํ ์ ์๋ค.
์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด start์ end์ ๋น๊ตํ ๋ ์์ ์ธ๋ฑ์ค๋ฅผ ์ ์ ํ์ฌ ๋น๊ตํ๋ค.
- start๊ฐ ์ฆ๊ฐํ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๋ ์์ ์ฐจ์ด๊ฐ ๊ฐ์ํ๋ค.
- end๊ฐ ์ฆ๊ฐํ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๋ ์์ ์ฐจ์ด๊ฐ ์ฆ๊ฐํ๋ค.
๊ทธ๋ฌ๋ฉด ์ด์ ๊ฐ์ ์ฑ์ง์ ํ์ฉํ๋ฉด start ๋๋ end๊ฐ ๋ ์ธ๋ฑ์ค์ ๋๋ฌํ๋ ์๊ฐ ๋ฉ์ถ๊ธฐ ๋๋ฌธ์ N+N๋ฒ ์ดํ๋ก ์ข ๋ฃ๋ ๊ฒ์ด๋ค.
์ฆ, ํฌ ํฌ์ธํฐ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ์ํด ์ ๋ ฌ์ ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ ๋ฐ๋ณตํ์๋ฅผ ์ค์ผ ์ ์์๋ค.
๐ ํ์ด ๐
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int[] array = new int[n];
for(int i = 0; i < n; i++) {
array[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(array); //์ค๋ฆ์ฐจ์ ์ ๋ ฌ
int start = 0;
int end = 0;
int result = Integer.MAX_VALUE;
while(end < n && start < n) {
int c = array[end]-array[start];
if(c >= m) { //์ฐจ์ด๊ฐ ํด๊ฒฝ์ฐ
result = Math.min(result, c);
start++;
}
else { //์ฐจ์ด๊ฐ ์์ ๊ฒฝ์ฐ
end++;
}
}
bw.write(result+"");
bw.flush();
bw.close();
}
}
'ProgramSolve > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 2529๋ฒ - ๋ถ๋ฑํธ (Java) (0) | 2024.03.11 |
---|---|
[BOJ] 13023๋ฒ - ABCDE (Java) (0) | 2024.03.01 |
[BOJ] 2477๋ฒ - ์ฐธ์ธ๋ฐญ (Java) (4) | 2024.02.19 |
[BOJ] 1068๋ฒ - ํธ๋ฆฌ (Java) (0) | 2024.02.01 |
[BOJ] 5397๋ฒ - ํค๋ก๊ฑฐ (Java) (2) | 2024.01.28 |