1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [S2_18111] ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	static int N, M, B;
	static int max_floor, min_floor;
	static int time, height;
	static int[][] map;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");

		// **** input start ****

		N = Integer.parseInt(st.nextToken());
		M = Integer.parseInt(st.nextToken());
		B = Integer.parseInt(st.nextToken());
		map = new int[N][M];

		max_floor = Integer.MIN_VALUE;
		min_floor = Integer.MAX_VALUE;

		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			for (int j = 0; j < M; j++) {
				map[i][j] = Integer.parseInt(st.nextToken());

				// ์ตœ๋Œ€์ธต ์ตœ์†Œ์ธต ๊ตฌํ•˜๊ธฐ
				max_floor = Math.max(max_floor, map[i][j]);
				min_floor = Math.min(min_floor, map[i][j]);
			}
		}

		// **** input end ****

		// ์ธต๋งˆ๋‹ค ์ฒดํฌ
		check();

		System.out.println(time + " " + height);

	} // main end

	// ์ธต์„ ๊ธฐ์ค€์œผ๋กœ ์ฒดํฌ
	static void check() {
		// ๊ฒฐ๊ณผ ์‹œ๊ฐ„
		time = Integer.MAX_VALUE;
		// ๊ฒฐ๊ณผ ์ธต
		height = -1;

		for (int i = min_floor; i <= max_floor; i++) {
			// ์ธ๋ฒคํ† ๋ฆฌ
			int invent = B;
			// ์ฒดํฌํ•˜๋Š” ์‹œ๊ฐ„
			int second = 0;

			for(int j=0; j<N; j++) {
				for(int z=0; z<M; z++) {
					// ์ขŒํ‘œ์™€ ์ธต ์ฐจ์ด
					int minus = map[j][z] - i;

					// ์ขŒํ‘œ๊ฐ€ ๋” ํฐ ๊ฒฝ์šฐ 1๋ฒˆ ์‹คํ–‰
					if(minus > 0) {
						// ์‹œ๊ฐ„ ์ถ”๊ฐ€
						second += (Math.abs(minus)*2);
						// ์ธ๋ฒค ์ถ”๊ฐ€
						invent += Math.abs(minus);
					}
					// ์ขŒํ‘œ๊ฐ€ ๋” ์ž‘์€ ๊ฒฝ์šฐ 2๋ฒˆ ์‹คํ–‰
					else if(minus < 0) {
						// ์‹œ๊ฐ„ ์ถ”๊ฐ€
						second += Math.abs(minus);
						// ์ธ๋ฒค ๋นผ๊ธฐ
						invent -= Math.abs(minus);
					}
				}
			}
			// ์กฐ๊ฑด ๋ถ€ํ•ฉ
			if(invent >= 0) {
				// ๊ฐ€์žฅ ์งง์€ ์‹œ๊ฐ„์ธ ๊ฒฝ์šฐ
				if(second <= time) {
					// ์‹œ๊ฐ„, ์ธต ๊ฐฑ์‹ 
					time = second;
					height = i;
				}
			}
		}
	}
} // class end

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

์ฒ˜์Œ์—” ์™„ํƒ์œผ๋กœ ๋ชจ๋“  ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ์ตœ์†Œ์ธ ์‹œ๊ฐ„์„ ์„ ํƒํ•˜๋ ค ํ–ˆ์œผ๋‚˜.. ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์ดˆ๊ณผํ•˜๋Š” ๊ฒƒ์„ ์•Œ๋ฉด์„œ๋„ ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ์ž˜ํ•˜๋ฉด ๋˜๊ฒ ์ง€๋ผ๋Š” ์ƒ๊ฐ์„ ๊ฐ€์กŒ๋‹คโ€ฆ
ํฐ ์˜ค ์‚ฐ ์ด ์˜€ ๋‹ค .. ใ…Ž
๊ทธ๋ž˜์„œ ๋น ๋ฅด๊ฒŒ ๋‹ค ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์ƒ๊ฐ์„ ํ•ด๋ณด๋‹ˆ
๋น„์Šทํ•œ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ํฐ ๊ธฐ์ค€์„ map์˜ ์ขŒํ‘œ๊ฐ€ ์•„๋‹Œ ์ธต์œผ๋กœ ๊ธฐ์ค€์„ ์žก๊ณ ํ•˜๋ฉด 3์ค‘ for๋ฌธ์ธ๋ฐ ๊ทธ๊ฒƒ๋„ ์ธต์˜ ๋†’์ด๋Š” ์ตœ๋Œ€ 256์ด๋ผ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ๋‘˜๋ ˆ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์ขŒํ‘œ์˜ ์ตœ๋Œ€ ์ธต๊ณผ ์ตœ์†Œ ์ธต์„ ๊ตฌํ•ด ๋ชจ๋“  ์ธต(i)์—์„œ ํ™•์ธํ•œ๋‹ค.
  • ๋งŒ์•ฝ ์ขŒํ‘œ๊ฐ€ i ๋ณด๋‹ค ํด ๊ฒฝ์šฐ 1๋ฒˆ ์ž‘์—…์„ ์‹คํ–‰ํ•œ๋‹ค.
  • ๋งŒ์•ฝ ์ขŒํ‘œ๊ฐ€ i ๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ 2๋ฒˆ ์ž‘์—…์„ ์‹คํ–‰ํ•œ๋‹ค.
  • ์ธ๋ฒค์ด 0๋ณด๋‹ค ์ž‘์„๊ฒฝ์šฐ๋Š” ํ†ต๊ณผ ( ์กฐ๊ฑด์— ์–ด๊ธ‹๋‚œ๋‹ค )
  • i ๋งˆ๋‹ค ์‹œ๊ฐ„๊ณผ ๊ฒฐ๊ณผ ์ธต์„ ๊ตฌํ•ด ์‹œ๊ฐ„์ด ์ค„์–ด๋“ค๋•Œ๋งˆ๋‹ค ๊ฐฑ์‹ ์„ ํ•ด์ค€๋‹ค.

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: