반응형
문제
한 변의 길이가 L인 정육각형을 가지고 있다. 오늘은 이 정육각형에 세 개의 겹치지 않는 대각선을 그리려고 한다.
대각선은 정육각형을 4개의 삼각형으로 나눈다. 4개의 삼각형 중에 면적이 제일 작은 삼각형의 면적을 S라고 한다.
가능한 S중에서 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정육각형 한 변의 길이 L이 주어진다. (1 ≤ L ≤ 1,000,000, L은 정수)
출력
첫째 줄에 S의 최댓값을 출력한다. 절대/상대 오차는 10-9까지 허용한다.
예제 입력 1 복사
5
예제 출력 1 복사
10.825317547305485
예제 입력 2 복사
10
예제 출력 2 복사
43.30127018922194
예제 입력 3 복사
100000
예제 출력 3 복사
4.330127018922194E9
그림으로 그려보면 가운데에 정삼각형 하나와 나머지 주변에 3개의 삼각형이 나온다. 정육각형이므로 3개의 삼각형 중 하나의 넓이를 구하면 된다.
한 변의 길이가 L이고 정육각형의 한 각은 120도니까 작은 삼각형 하나의 넓이는 4분의루트3 * L * L이라는 식이 나온다.
여기서 루트3은 Math.sqrt()라는 함수를 통해 (제곱근을 반환) Math.sqrt(3)을 넣어주면 루트3이 나온다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int L =sc.nextInt();
double a = Math.sqrt(3);
double area = a/4 * L*L;
System.out.println(area);
}
}
반응형
'백준 > 기타 문제' 카테고리의 다른 글
백준 14623 자바 (0) | 2022.04.10 |
---|---|
백준 14470 자바 (0) | 2022.04.10 |
백준 11943 자바 (0) | 2022.04.10 |
백준 10797 자바 (0) | 2022.04.09 |
백준 10707 자바 (0) | 2022.04.09 |