[백준] 3049 다각형의 대각선 JAVA

·2024년 3월 16일

1일1백준 -Java-

목록 보기
25/60

문제

세 대각선이 한 점에서 만나지 않는 볼록 N각형이 주어졌을 때, 대각선의 교차점의 개수를 세는 프로그램을 작성하시오.

아래 그림은 위의 조건을 만족하는 한 육각형의 교차점 그림이다.

모든 내부각이 180도보다 작은 다각형을 볼록 다각형이라고 한다.

입력

첫째 줄에 N이 주어진다. (3 ≤ N ≤ 100)

출력

첫째 줄에 교차점의 개수를 출력한다.

예제 입력

4

예제 출력

1

내가 했던 풀이 방법

대각선 교점의 수가 nC4임을 이용하여 계산
-> 왜 nC4일까 : N각형에서 임의의 꼭짓점 4개를 선택해 사각형을 만들고, 만들어진 사각형에서 대각선을 그리게 되면 교점이 하나가 생기게 된다. 즉 임의의 꼭짓점 4개를 선택하는 경우의 수를 계산하면 된다. (점1,점2,점3,점4)와 (점2,점3,점4,점1)은 같으므로 조합을 사용한다.

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
   
    public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int polygon = Integer.parseInt(br.readLine());

        int cal = ((polygon)*(polygon-1)*(polygon-2)*(polygon-3))/24;
        System.out.println(cal);
    }   
}

회고

대각선이 나오면서 조합 문제인 건 알아챘는데 교점을 구하라고 해서 당황했던 문제.. 다각형의 교점 개수를 찾아보니 위와 같이 설명되어 있어서 쉽게 풀이할 수 있었다. 도형에 매우 약하니 이 부분도 집중해서 풀이해야겠다. (이정도면 죄다 약점 같아보임...)

profile
Frontend🍓

0개의 댓글