diff --git "a/lkhyun/202506/17 BOJ P5 \354\203\201\353\202\250\354\236\220 \352\263\275\354\262\240\354\232\251.md" "b/lkhyun/202506/17 BOJ P5 \354\203\201\353\202\250\354\236\220 \352\263\275\354\262\240\354\232\251.md" new file mode 100644 index 00000000..6e54d63c --- /dev/null +++ "b/lkhyun/202506/17 BOJ P5 \354\203\201\353\202\250\354\236\220 \352\263\275\354\262\240\354\232\251.md" @@ -0,0 +1,60 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + static StringTokenizer st; + static int N,M,K; + static HashSet chosen; + static int cheolyoung; + static int answer = 0; + + public static void main(String[] args) throws IOException { + st = new StringTokenizer(br.readLine()); + N = Integer.parseInt(st.nextToken()); + M = Integer.parseInt(st.nextToken()); + K = Integer.parseInt(st.nextToken()); + chosen = new HashSet<>(); + + for (int i = 0; i < M; i++) { + st = new StringTokenizer(br.readLine()); + chosen.add(Integer.parseInt(st.nextToken())); + chosen.add(Integer.parseInt(st.nextToken())); + } + st = new StringTokenizer(br.readLine()); + int a = Integer.parseInt(st.nextToken()); + int b = Integer.parseInt(st.nextToken()); + cheolyoung = Math.abs(a%K - b%K); + + List remainders = new ArrayList<>(); + for (int i = 1; i <= 4*N; i++) { + if(!chosen.contains(i) && i != a && i != b) { + remainders.add(i % K); + } + } + Collections.sort(remainders); + + int size = remainders.size(); + int mid = size / 2; + int left = 0; + int right = mid; + + while (left < mid && right < size) { + int diff = remainders.get(right) - remainders.get(left); + + if (diff > cheolyoung) { + answer++; + left++; + right++; + } else { + right++; + } + } + + bw.write(Math.min(answer, M - 1) + "\n"); + bw.close(); + } +} +```