๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ 18111๋ฒ ๋ง์ธํฌ๋ํํธ ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
๋ฌธ์ ์ ๊ทผ
์ด๋ฒ ๋ฌธ์ ๋ ์ ๋ ฅ์ ๋ณด๊ณ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ์ด์ผํ ์ง ์ ์ ์๋ค.
์ฐ์ ๋ฐฐ์ด์ 500 x 500 ํฌ๊ธฐ์ ๋ฐฐ์ด์ด ๋ค์ด์ค๊ณ B ์๋ ์ต๋ 6์ต 4์ฒ์ ๋ธ๋ก์ด ์กด์ฌํ ์ ์๋ค.
๊ทธ๋ผ ์ต์ ์ ๊ฒฝ์ฐ n์ 3์ ๊ณฑ์ด 1์ฒ๋ง ์ ๋ ๋๋ ๋ธ๋ฃจํธ ํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ฒ ๋๋ค.
๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ธํ๋๋ผ๋ ์ถฉ๋ถํ ์ปค๋ฒ๊ฐ ๊ฐ๋ฅํ๋ค.
ํด๊ฒฐ๋ฒ
์ด ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ธ๋ฃจํธํฌ์ค๋ก 0์ธต ๋ถํฐ 256์ธต๊น์ง ๋ชจ๋ ๋ธ๋ญ์ ํํํ๊ฒ ๋ง๋๋๋ฐ ํ์ํ ์๊ฐ์ ์ต์๋ฅผ ๋งค๋ฒ ๋น๊ตํ๋ฉด ๋๋ค.
์กฐ๊ธ ๋ ์๊ฐ์ ํด๋ณด๋ฉด 0์ธต ๋ถํฐ๊ฐ ์๋๋ผ ์กด์ฌํ๋ ๋ธ๋ก ์ค ๊ฐ์ฅ ์์ ์ธต ์์ ์กด์ฌํ๋ ๋ธ๋ก์ค ๊ฐ์ฅ ๋์ ์ธต ์ฌ์ด์ ๋ฒ์๋ง ๊ฐ๋ฅํ๋ฏ๋ก ์ ๋ ฅ์ ๋ฐ์ ๋ ์ต์์ ์ต๋ ๋์ด๋ฅผ ๊ฐ๊ฐ ์ง์ ํ๊ณ ์ธต์ ๋ฐ๋ณต์ ๋ ๋ ํด๋น ์ต๋ ์ต์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ฉด ๋๋ค.
์ ๋ต ์ฝ๋
public class B18111 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] nmb = br.readLine().split(" ");
int n = Integer.parseInt(nmb[0]);
int m = Integer.parseInt(nmb[1]);
int b = Integer.parseInt(nmb[2]);
int[][] ground = new int[n][m];
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int i = 0; i < ground.length; i++) {
String[] groundRow = br.readLine().split(" ");
for (int j = 0; j < m; j++) {
int value = Integer.parseInt(groundRow[j]);
ground[i][j] = value;
max = Math.max(max, value);
min = Math.min(min, value);
}
}
int answerSeconds = Integer.MAX_VALUE; // ์๊ฐ
int answerHeight = -1; // ์ธต
for (int i = min; i <= max; i++) { // ์ต์์ธต ๋ถํฐ ์ต๋์ธต ๊น์ง
int seconds = 0;
int inventory = b;
for (int j = 0; j < ground.length; j++) {
for (int k = 0; k < ground[j].length; k++) {
int diff = ground[j][k] - i;
if(diff > 0) { // ์ ๊ฑฐํด์ผ ํจ
seconds += Math.abs(diff) * 2;
inventory += Math.abs(diff);
}else if(diff < 0){ // ์ถ๊ฐํด์ผ ํจ
seconds += Math.abs(diff);
inventory -= Math.abs(diff);
}
}
}
if(inventory >= 0) {
if(seconds <= answerSeconds) { // == ๊ฐ ํฌํจ๋์ด์ผ ํจ ใ
๊ทธ๋ ์ง ์์ผ๋ฉด ์ต๋ ๋์ด๋ฅผ ํ๋ณ ํ์ง ๋ชปํจ
answerSeconds = seconds;
answerHeight = i;
}
}
}
bw.write(answerSeconds + " " + answerHeight);
bw.flush();
bw.close();
}
}
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
'๐ป Computer Science > - Data Structure, Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 1105๋ฒ ํ ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.13 |
---|---|
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 1080๋ฒ ํ๋ ฌ ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.13 |
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 2108๋ฒ ํต๊ณํ ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.08 |
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 2775๋ฒ ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.07 |
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 2292๋ฒ ๋ฒ์ง ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.07 |
๋๊ธ