๐ ๏ธ ๋ฌธ์ ๐ ๏ธ
๐๏ธ ์ค๋ช ๐๏ธ
์ฐธ์ธ๋ฐญ์ ใฑ์ ๋ชจ์์ด๊ฑฐ๋ ใฑ์๋ฅผ 90๋, 180๋, 270๋ ํ์ ํ ๋ชจ์(โ, โ, โ ๋ชจ์)์ ์ก๊ฐํ
๋ฐญ์ ๊ฒฝ๊ณ(์ก๊ฐํ์ ๋ณ)๋ ๋ชจ๋ ๋์ ๋ฐฉํฅ์ด๊ฑฐ๋ ๋จ๋ถ ๋ฐฉํฅ
→ ๋ฐญ์ ๋ชจ์์ ํญ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ์ก๊ฐํ์ด๋ค.(ํ์ ํ ์ ์๋ค.)
๊ทธ๋ฌ๋ฏ๋ก ๋ฐญ์ ๋์ด๋ [์ ์ฒด์ ์ธ ์ฌ๊ฐํ์ ๋์ด - ๋น ์ ธ์ผํ ์์ ์ฌ๊ฐํ์ ๋์ด] ์ด๋ค.
์ฐ๋ฆฌ๋ ๊ฐ์ฅ ๊ธด ๊ฐ๋ก์ ๊ธธ์ด์ ์ธ๋ก์ ๊ธธ์ด, ๋นผ์ผํ ๊ฐ๋ก์ ๊ธธ์ด์ ์ธ๋ก์ ๊ธธ์ด๋ฅผ ๊ตฌํด์ผํ๋ค.
1. ๊ฐ์ฅ ๊ธด ๊ฐ๋ก์ ์ธ๋ก ๊ตฌํ๊ธฐ
์ ๋ ฅ๋ฐ์ ๋ ๋์ชฝ์ 1, ์์ชฝ์ 2, ๋จ์ชฝ์ 3, ๋ถ์ชฝ์ 4 ์ด๋ฏ๋ก 1, 2์ผ ๊ฒฝ์ฐ ๊ฐ๋ก ํ์ธ, 3,4์ผ ๊ฒฝ์ฐ ์ธ๋ก ํ์ธ
2. ๋นผ์ผํ ๊ฐ๋ก์ ์ธ๋ก ๊ตฌํ๊ธฐ
์ก๊ฐํ์ ์์์ ํ ๊ผญ์ง์ ์์ ์ถ๋ฐํ์ฌ ๋ฐ์๊ณ๋ฐฉํฅ์ผ๋ก ๋๋ ๋ฅผ ๋๋ฉด์ ์ ๋ ฅ์ ๋ฐ๋๋ค.
→ ์์์ ํ ๋ณ์ ์ ๋ณ์ ์ ์ ์๋ค.
์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ๊ฐ์ฅ ๊ธด ๊ฐ๋ก์ ์ธ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ํ ๊ฐ์ ๊ตฌํ ์ ์๋ค.
- ๊ฐ์ฅ ๊ธด ์ธ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐ๊ฒฐ๋ ๋ ๋ณ์ ๋ฐญ์ ํฌํจ๋ ๊ฐ๋ก์ ๊ธธ์ด์ด๋ค.
- ํ์ํ ๋นผ์ผํ๋ ๊ฐ๋ก์ ๊ธธ์ด๋ ๋ ๋ณ์ ๋นผ๋ฉด ๋๋ค.
- ๊ฐ์ฅ ๊ธด ๊ฐ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐ๊ฒฐ๋ ๋ ๋ณ์ ๋ฐญ์ ํฌํจ๋ ์ธ๋ก์ ๊ธธ์ด์ด๋ค.
- ํ์ํ ๋นผ์ผํ๋ ์ธ๋ก์ ๊ธธ์ด๋ ๋ ๋ณ์ ๋นผ๋ฉด ๋๋ค.
์ด๋ฅผ ๊ตฌํ๊ธฐ ์ํ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
int h = Math.abs(sides[(width+1) % 6] - sides[(6+(width-1)) % 6]); //์ธ๋ก
int w = Math.abs(sides[(height+1) % 6] - sides[(6+(height-1)) % 6]); //๊ฐ๋ก
์ ์์ ๋ณ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์๊ฐ ์กด์ฌํ๋ค.
์ฆ, ๋ฌด์กฐ๊ฑด ์ ์์ ๋ณ์ ์กด์ฌํ๋ฏ๋ก ๊ฐ์ฅ ๋์ ์ธ๋ฑ์ค์ผ ๊ฒฝ์ฐ์ ์ฃผ์ํด์ผ ํ๋ค.
๋๋ ์ด๋ฅผ ๋๋จธ์ง ์ฐ์ฐ์ ์ฌ์ฉํ์ฌ ๊ณ์ฐํ ์ ์๋๋ก ๊ตฌํํ๋ค.
๐ ํ์ด ๐
package Baekjoon;
import java.io.*;
import java.util.StringTokenizer;
public class Math2477 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int k = Integer.parseInt(br.readLine());
int[] sides = new int[6];
int width = -1; //๊ฐ์ฅ ๊ธด ๊ฐ๋ก์ ๊ธธ์ด ์ธ๋ฑ์ค
int height = -1; //๊ฐ์ฅ ๊ธด ์ธ๋ก์ ๊ธธ์ด ์ธ๋ฑ์ค
for(int i = 0; i < 6; i++) {
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
sides[i] = Integer.parseInt(st.nextToken());
if(n < 3) {
if(width == -1) {
width = i;
}
else if(sides[width] < sides[i]) {
width = i;
}
}
else {
if(height == -1) {
height = i;
}
else if(sides[height] < sides[i]) {
height = i;
}
}
}
int result = sides[width] * sides[height]; //์ ์ฒด์ ์ธ ์ฌ๊ฐํ ๋์ด
int h = Math.abs(sides[(width+1) % 6] - sides[(6+(width-1)) % 6]);
int w = Math.abs(sides[(height+1) % 6] - sides[(6+(height-1)) % 6]);
result -= w * h; //๋นผ์ผํ ์ฌ๊ฐํ ๋์ด ๋นผ๊ธฐ
bw.write(result * k + "");
bw.flush();
bw.close();
}
}
'ProgramSolve > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 2529๋ฒ - ๋ถ๋ฑํธ (Java) (0) | 2024.03.11 |
---|---|
[BOJ] 13023๋ฒ - ABCDE (Java) (0) | 2024.03.01 |
[BOJ] 1068๋ฒ - ํธ๋ฆฌ (Java) (0) | 2024.02.01 |
[BOJ] 5397๋ฒ - ํค๋ก๊ฑฐ (Java) (2) | 2024.01.28 |
[BOJ] 2512๋ฒ - ์์ฐ (Java) (0) | 2024.01.15 |