haju__log

[python][백준/BOJ] 3049번 : 다각형의 대각선 본문

BOJ_백준

[python][백준/BOJ] 3049번 : 다각형의 대각선

haju 2023. 8. 14. 16:12
반응형

https://www.acmicpc.net/problem/3049

 

3049번: 다각형의 대각선

세 대각선이 한 점에서 만나지 않는 볼록 N각형이 주어졌을 때, 대각선의 교차점의 개수를 세는 프로그램을 작성하시오. 아래 그림은 위의 조건을 만족하는 한 육각형의 교차점 그림이다. 모든

www.acmicpc.net

 

 

✅ 문제 풀이

  • 사각형의 대각선의 개수는 2개이고, 교차점의 개수는 1개이다.
  • 이점을 활용하여, 볼록n각형을 사각형으로 쪼개서 생각해보면 쉽게 풀 수 있다!
  • 5각형의 경우, 사각형으로 5개 쪼갤 수 있고, 거기서 각각 1개씩의 교차점이 나와서 총 5개의 교차점을 가짐.
  • 즉, 5개의 점에서 중복없이 4개를 골라야 사각형을 만들 수 있으므로, 식으로 정리하면 5C4가 된다.
  • 따라서 문제를 풀기 위한 식은 nC4 가 된다!
  • ▶ n*(n-1)*(n-2)*(n-3) // 24 ← 여기서 24는 4! 의 값이다.
import sys

n=int(sys.stdin.readline())

print((n*(n-1)*(n-2)*(n-3)//24))

 

반응형