자료구조&알고리즘/알고리즘 - 대회 알고리즘

[알고리즘 문제 풀이][기하학] 백준 14264번 - 정육각형과 삼각형

초코쨔응 2022. 8. 27. 17:18

백준 14264 정육각형과 삼각형 문제를 푼 방법을 개인적으로 정리한 내용입니다.

(증명에 부족한 점이 있는데, 어떻게 보완할 수 있을지 확인하게 되면 추후 업데이트할 예정입니다.)

 

- 문제 설명: https://www.acmicpc.net/problem/14264

- 문제 풀이:

정육각형은 겹치지 않는 3개의 선을 이용하여 4개의 삼각형으로 나눠야한다. 직접 그려보니 총 3가지 경우가 확인되었다.

가장 작은 삼각형의 크기는 항상 일정하였다. 따라서 저 삼각형의 크기 S 를 구하였다. 문제에서는 S의 넓이를 최대화하라는 것이었지만, 항상 일정하기 때문에 최대화는 의미가 없는 것 같다.

 

아래와 같이 삼각형을 잘라보면 각도의 관계를 알 수 있다. 이것만으로 바로 각도를 알아내지는 못하였고, 아래 (2) 의 방법을 더 사용했어야했다.

(1) 과 (2) 의 두 식을 연립하면 각도를 알아낼 수 있다.

이렇게 각도를 알아내면 코사인이나 사인을 이용하여 길이를 구할 수 있다. (혹은 피타고라스의 정리를 이용해도 된다.)

이와 같이 가장 작은 삼각형의 넓이 S 는 주어진 L * L * sqrt(3) / 4 임을 알 수 있다.

 

- 코드 (Python)

import math
print((int(input())**2)*math.sqrt(3)/4)

 

- 실수 포인트 & 반례:

문제의 예제 외에 필요한 반례는 없었다.