본문 바로가기

PROGRAMMING/Algorithm

[기하학] BOJ 31397 - 반 나누기 (Hard) https://www.acmicpc.net/problem/31397문제루타비스의 수호자, 시간술사 반반은 모든 음식을 반으로 먹는 것을 즐깁니다. 비록 후라이드 양념 반반 치킨을 먹지는 않지만, 중식은 항상 짬짜면을, 피자집에서는 항상 하프 앤 하프 피자를 주문합니다.생일을 맞은 반반은 그의 동료인 어릿광대 피에르에게서 볼록다각형 모양의 케이크를 하나 선물받았습니다. 반반은 이 케이크를 일직선으로 한 번 잘라서 반으로 나눠 먹고 싶습니다. 특히 나눠진 후의 케이크 밑면의 면적과 둘레가 똑같도록 하고 싶습니다.반반이 원하는 대로 케이크를 두 조각으로 나눌 수 있을까요?입력첫 줄에는 반반이 선물받은 케이크 밑면의 모양인 볼록다각형의 꼭짓점 개수 \(N\)이 주어집니다. \((3 \le N \le 200\,0..
[기하학] BOJ 7869 - 두 원 (두 원이 교차하는 영역의 넓이) 문제두 원이 주어졌을 때, 교차하는 영역의 넓이를 소수점 셋째자리까지 구하는 프로그램을 작성하시오.입력첫째 줄에 두 원의 중심과 반지름 x1, y1, r1, x2, y2, r2가 주어진다. 실수는 최대 소수점 둘째자리까지 주어진다.출력첫째 줄에 교차하는 영역의 넓이를 반올림해 소수점 셋째자리까지 출력한다. 수능 수학영역에서 나올 법한 기하 문제이다. 풀이에 피타고라스의 정리와 삼각함수(코사인 법칙)를 사용하였다.먼저, 주어진 문제에서 추가적인 조건 없이 두 원의 중심 좌표(x, y)와 반지름의 길이(r)가 주어졌다. 나올 수 있는 넓이를 구하는 데 사용되는 방식을 두 원의 중심 사이의 거리와 각각의 반지름의 관계에 따라 나누어야 한다.따라서 아래와 같이 세 가지 경우로 표현하고 연산 방식을 분기할 수 있..