2024. 7. 30. 00:36ใCoding Test/BOJ
๐ง๐ป๐ปํ์ด ๊ณผ์
๊ธฐํํ ๋ฌธ์ ๋ ๋ง์ด ํ์ด๋ณด์ง ์์์ ๊ทธ๋ฐ๊ฐ, ์๊ฐ๋ณด๋ค ์ด๋ ค์ ์ต๋๋ค. ์กฐ๊ธ๋ง ๋ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์๋ฐ ์๊ฐ์ด ๋ฆ์ด ๋๋ฌด ํผ๊ณคํ ๋๋จธ์ง ํํธ๋ฅผ ์ด์ง ๋ดค๋ค์... ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ ํํํ๊ฒ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ฌธ์ ์์ต๋๋ค.
๋ฌธ์ ์์ ๋์ฌ ์ ์๋ ์ฐธ์ธ๋ฐญ์ ๋ชจ์์ ⌈, ⌉, ⌋, ⌊๋ก ์ด 4๊ฐ์ง์ ๋๋ค. ์ด๋ฌํ ์ฐธ์ธ๋ฐญ์ ๊ฐ๋ก์ ์ธ๋ก ๋ชจ๋ ๊ฐ์ฅ ๊ธด ๊ธธ์ด์ ๋ณ์ด ์๊ณ , ๋ฌธ์ ์์ ์ฃผ์ด์ง๋ ์ ๋ณด๋ ํญ์ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค. ์ด๊ฒ์ ๊ฐ๋ก๊ฐ ๋์๋ค๋ฉด ๋ค์์ ์ธ๋ก, ์ธ๋ก๊ฐ ๋์๋ค๋ฉด ๋ค์์ ๊ฐ๋ก ๋ฐฉํฅ์ด๋ผ๋ ๊ฒ์ ๋ณด์ฅํด์ค๋๋ค.
์ด๋ฌํ ์ ๋ณด๋ฅผ ํ ๋๋ก ์๊ฐํด๋ณผ ๋, ๊ฐ์ฅ ๊ธด ๋ณ์ ๋ฐฉํฅ์ด ๋ง์ฝ ๊ฐ๋ก๋ผ๋ฉด ํด๋น ๋ณ์ ์ ๋ณ๊ณผ ํ๋ณ์ ์ธ๋ก ๋ฐฉํฅ์ด๋ผ๋ ๊ฑธ ์ ์ ์์ต๋๋ค. ์ด๋, ์ด ์ ๋ณ๊ณผ ํ๋ณ์ ๊ธธ์ด ์ฐจ์ด๊ฐ ๊ณง ์ ์ฒด ์ฌ๊ฐํ ๋์ด์์ ์๋ผ๋ด์ผ ํ ์ฌ๊ฐํ์ ๋ณ์ ๊ธธ์ด๊ฐ ๋๋ค๋ ๊ฑฐ์ฃ .
๊ฐ๋ก ๋ฐฉํฅ์ ๊ฐ์ฅ ๊ธด ๋ณ์ ๊ธธ์ด๋ 160์ด๋ฉฐ, ์ด ๋ณ์ ์ ๋ณ์ 30, ํ๋ณ์ 50 ๊ธธ์ด์ ์ธ๋ก ๋ฐฉํฅ ๋ณ์ ๋๋ค. ์ด๋, ์ ๋ณ๊ณผ ํ๋ณ์ ๊ธธ์ด ์ฐจ์ด์ธ \(50 - 30 = 20\)์ด ๊ณง ์๋ผ๋ด์ผ ํ ์ฌ๊ฐํ์ ์ธ๋ก ๊ธธ์ด๊ฐ ๋์ฃ .
๋ง์ฐฌ๊ฐ์ง๋ก ์ธ๋ก ๋ฐฉํฅ์ ๊ฐ์ฅ ๊ธด ๋ณ์ ๊ธธ์ด๋ 50์ ๋๋ค. ํด๋น ๋ณ์ ์ ๋ณ์ 160, ํ๋ณ์ 100์ด๋ฉฐ ์ด ๋์ ์ฐจ์ด๋ 60์ ๋๋ค. ๋ฐ๋ผ์, ์๋ผ๋ด์ผ ํ ์ฌ๊ฐํ์ ๋์ด๋ \(60 \times 20 = 1200\)์ด๋ผ๋ ๊ฑธ ์ ์ ์์ฃ .
์ด๋ฌํ ๋ฐฉ์์ ํ ๋๋ก ์ฐธ์ธ๋ฐญ ๋์ด๋ฅผ ๊ตฌํด K๋ฅผ ๊ณฑํ ๊ฐ์ ์ถ๋ ฅํด์ฃผ๋ฉด ๋ฉ๋๋ค.
โ๏ธ์์ค์ฝ๋
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BOJ2477 {
private static int K;
private static int[] Lengths;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int K = Integer.parseInt(br.readLine());
Lengths = new int[6];
// 1:๋์ชฝ, 2:์์ชฝ, 3:๋จ์ชฝ, 4:๋ถ์ชฝ
int maxHorizontalLength = 0, maxVerticalLength = 0;
int maxHorizontalIndex = -1, maxVerticalIndex = -1;
for (int i = 0; i < 6; i++) {
String[] input = br.readLine().split(" ");
int direction = Integer.parseInt(input[0]);
Lengths[i] = Integer.parseInt(input[1]);
// ๊ฐ๋ก ๋ฐฉํฅ ์ต๊ณ ๊ธธ์ด์ ์ธ๋ฑ์ค ์ฐพ๊ธฐ
if (direction <= 2 && maxHorizontalLength < Lengths[i]) {
maxHorizontalLength = Lengths[i];
maxHorizontalIndex = i;
} else if (direction > 2 && maxVerticalLength < Lengths[i]){
maxVerticalLength = Lengths[i];
maxVerticalIndex = i;
}
}
// ๋นผ์ผ ํ ์ฌ๊ฐํ ๊ฐ๋ก ์ธ๋ก ๊ธธ์ด ์ฐพ๊ธฐ (๊ฐ์ฅ ๊ธด ๋ณ์ ์ ์ชฝ ๋ณ ์ฐจ์ด๊ฐ ์์ ์ฌ๊ฐํ์ ๋ณ์ ๊ธธ์ด)
int minHorizontalLength = -1, minVerticalLength = -1;
for (int i = 0; i < 6; i++) {
int previous = (i - 1) < 0 ? 5 : i - 1;
int next = (i + 1) >= 6 ? 0 : i + 1;
if (i == maxHorizontalIndex) {
minHorizontalLength = Math.abs(Lengths[previous] - Lengths[next]);
} else if (i == maxVerticalIndex) {
minVerticalLength = Math.abs(Lengths[previous] - Lengths[next]);
}
}
int groundArea = (maxHorizontalLength * maxVerticalLength) - (minHorizontalLength * minVerticalLength);
int answer = K * groundArea;
System.out.println(answer);
br.close();
}
}
'Coding Test > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 8938๋ฒ | ์ฌ๋ฅ๊พผ (Java) (0) | 2024.08.01 |
---|---|
[BOJ] 20056๋ฒ | ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ (Java) (1) | 2024.07.25 |
[BOJ] 12904๋ฒ | A์ B (C++) (0) | 2024.03.28 |
[BOJ] 14891๋ฒ | ํฑ๋๋ฐํด (C++) (0) | 2024.03.24 |
[BOJ] 2636๋ฒ | ์น์ฆ (C++) (1) | 2024.03.22 |