18111๋ฒ: ๋ง์ธํฌ๋ํํธ
ํ ๋ ๋์ํํธ๋ ๋ํ ์ค๋น๋ฅผ ํ๋ค๊ฐ ์ง๋ฃจํด์ ธ์ ์๋๋ฐ์ค ๊ฒ์์ธ ‘๋ง์ธํฌ๋ํํธ’๋ฅผ ์ผฐ๋ค. ๋ง์ธํฌ๋ํํธ๋ 1 × 1 × 1(์ธ๋ก, ๊ฐ๋ก, ๋์ด) ํฌ๊ธฐ์ ๋ธ๋ก๋ค๋ก ์ด๋ฃจ์ด์ง 3์ฐจ์ ์ธ๊ณ์์ ์์ ๋กญ๊ฒ
www.acmicpc.net
๋ฌธ์
์์
ํ์ด
์ด์ฐจ์ ๋ฐฐ์ด arr[N][M] ์ ์ฑ์์ค๋ค.
์ฑ์์ฃผ๋ ๋์์ ์ธต์ด ๊ฐ์ฅ ๋ฎ์ ๊ฐ๊ณผ, ๊ฐ์ฅ ๋์ ๊ฐ์ ๊ตฌํด์ max, min ๋ณ์์ ๋ฐ๋ก ๋ด์๋๋ค.
๊ทธ๋ฆฌ๊ณ min ๋ถํฐ max ๊น์ง ๋ฐ๋ณตํ๋ ๋ฐ๋ณต๋ฌธ์ ํตํด ์๊ฐ์ด ๊ฐ์ฅ ์ ๊ฒ ๋๋ ๊ฐ๊ณผ ์ธต์ ๊ตฌํ๋ค.
์ฝ๋๋ฅผ ํ์ธํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค.
์์ค ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
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 M = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
int[][] arr = new int[N][M];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < M; j++) {
int num = Integer.parseInt(st.nextToken());
arr[i][j] = num;
max = Math.max(max, num);
min = Math.min(min, num);
}
}
int time = Integer.MAX_VALUE; // ์๊ฐ
int floor = -1; // ์ธต
for (int i = min; i <= max; i++) {
int seconds = 0;
int inventory = B;
for (int j = 0; j < arr.length; j++) {
for (int k = 0; k < arr[j].length; k++) {
int num = arr[j][k] - i;
if (num > 0) { // ์ ๊ฑฐ
seconds += Math.abs(num) * 2;
inventory += Math.abs(num);
} else if (num < 0) { // ์ถ๊ฐ
seconds += Math.abs(num);
inventory -= Math.abs(num);
}
}
}
if (inventory >= 0) {
if (seconds <= time) {
time = seconds;
floor = i;
}
}
}
System.out.println(time + " " + floor);
}
}
'๐ ์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2178๋ฒ : ๋ฏธ๋ก ํ์ (0) | 2023.01.20 |
---|---|
[๋ฐฑ์ค] 1874๋ฒ : ์คํ ์์ด (0) | 2023.01.14 |
[๋ฐฑ์ค] 4949๋ฒ : ๊ท ํ์กํ ์ธ์ (0) | 2023.01.13 |
[๋ฐฑ์ค] 10773๋ฒ : ์ ๋ก (0) | 2023.01.13 |
[๋ฐฑ์ค] 10845๋ฒ : ํ (JAVA) (1) | 2023.01.12 |