https://www.acmicpc.net/problem/31623
ํ์ด
์ ์ ์ ์๋ ์ฌํท์ ์ ํ์ด ์์ผ๋, ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ 0 <= A[i] < T ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ค. (๋ชจ๋๋ฌ ์ฐ์ฐ)
๊ทธ ํ ํ ๋ช ์ฉ ์ฌํท ํ๋๋ฅผ ์ ํ๊ฐ๋ฉฐ unpleasantness ๊ฐ์ ๊ณ์ฐ.
unpleasantness ๊ฐ์ ๋ฐฉ์ ์จ๋๊ฐ ๋ฑ ์ค๊ฐ๊ฐ์ผ ๋ ์ต์๊ฐ ๋๋ค.
์ฆ, unpleasantness = (๋ฐฐ์ด์ ์ต๋๊ฐ - ๋ฐฐ์ด์ ์ต์๊ฐ + 1) / 2
๋ฐฐ์ด์ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ๊ตฌํ๊ธฐ ์ํด ์ ๋ ฌ์ ํ๋ค.
์ฝ๋
๋๋ณด๊ธฐ
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int T = Integer.parseInt(st.nextToken());
int[] A = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
A[i] = Integer.parseInt(st.nextToken()) % T;
}
Arrays.sort(A);
int min = A[N - 1] - A[0];
for (int i = 0; i < N - 1; i++) {
min = Math.min(min, A[i] + T - A[i + 1]);
}
System.out.println((min + 1) / 2);
br.close();
}
}
ํ๊ธฐ
์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ๋ฅ๋ ฅ๋ณด๋ค๋ ์์ด๋์ด๊ฐ ํ์ํ๋ ๋ฌธ์ .
'Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋ฐฑ์ค 21276 - ๊ณ๋ณด ๋ณต์๊ฐ ํธ์ (0) | 2024.03.26 |
---|---|
[Java] ๋ฐฑ์ค 31577 - ๋์ฌ์จ์ด์ ๋นํธ์ฝ์ธ (0) | 2024.03.22 |
[Java] ๋ฐฑ์ค 31443 - ์ค์์ด (1) | 2024.03.15 |
[Java] ๋ฐฑ์ค 2252 - ์ค ์ธ์ฐ๊ธฐ (0) | 2024.03.14 |
[Java] ๋ฐฑ์ค 1724 - ๊ทธ๋ฆผํ (0) | 2024.03.13 |