https://www.acmicpc.net/problem/2477
접근 :
- 회전 하는 경우와 시작점이 무작위 임으로, 회전과 시작점을 사용하지 않는 방법을 사용해야한다.
- 변 길이를 반시계 방향으로 순서대로 입력 받으므로 이를 활용한다.
- 사각형의 넓이를 사용하면 회전 및 순서에 영향을 받지 않으므로 이 성질을 이용한다.
- 반시계 방향으로 받은 변 2개씩 곱하여 넓이를 구하면 특정 형태의 넓이가 나타난다.
- 이를 이용하여 넓이당 참외 수 와 특정 모양의 참외밭의 모양을 곱하여 결과를 출력한다.
- 이므로 참외밭의 참외수는 다음과 같다
코드 구현 :
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] inputs;
int x = 0;
int y = 0;
int[] numbers = new int[6];
int result = 0;
int temp_result = 0;
int temp_num = 0;
// 각각의 변 길이 입력, 가장 큰 사각형의 x, y값 저장
for (int i = 0; i < 6; i++) {
inputs = br.readLine().split(" ");
temp_num = Integer.parseInt(inputs[1]);
numbers[i] = temp_num;
if (inputs[0].equals("3") || inputs[0].equals("4")) {
if (x < temp_num) x = temp_num;
}else {
if (y < temp_num) y = temp_num;
}
}
//다음 반시계 방향 수와 곱
for (int j = 0; j < 6; j++) {
temp_result += numbers[j] * ((j == 5) ? numbers[0] : numbers[j + 1]);
}
result = n * (temp_result - (2 * x * y));
System.out.println(result);
br.close();
}
}
'JAVA > Coding Test' 카테고리의 다른 글
[JAVA] 백준 1004 어린 왕자_기하1 (0) | 2023.03.08 |
---|---|
[JAVA] 백준 1002 터렛_기하1 (0) | 2023.03.07 |
[JAVA] 백준 3009 네 번째 점_기하1 (0) | 2023.03.06 |
[JAVA] 백준 1085 직사각형에서 탈출_기하1 (0) | 2023.03.06 |
[JAVA] 백준 11478 서로 다른 부분 문자열의 개수_집합과맵 (0) | 2023.03.05 |