๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Problem Solving

[Java] ๋ฐฑ์ค€ 31623 - Room Temperature

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();
	}
}

ํ›„๊ธฐ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ ๋Šฅ๋ ฅ๋ณด๋‹ค๋Š” ์•„์ด๋””์–ด๊ฐ€ ํ•„์š”ํ–ˆ๋˜ ๋ฌธ์ œ.