티스토리 뷰

<설명>

좌표 평면의 점 N개를 입력으로 받아서, 그 점들로 만들 수 있는 삼각형 중 가장 넓이가 작은 것을 출력한다.


<Input>

첫번째 입력: 하나의 정수 N [3,250]

두번째 입력: [-10000, 10000] 사이에 있는 두 정수 x, y


<Output>

만들 수 있는 삼각형 중 최소 넓이


<소스코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <math.h>
 
int main (void)
    {
        int N,n;
        int i,j,k;
        double cS;
        double min=100000000;
        
        scanf("%d",&N);
        int x[N-1];
        int y[N-1];
        
        for(i=0;i<N;i++){
            scanf("%d %d",&x[i],&y[i]);
        }
        for(i=0;i<N-2;i++){
            for(j=i+1;j<N-1;j++){
                for(k=j+1;k<N;k++){
                  cS=(double)abs(((x[i]*y[j])+(x[j]*y[k])+(x[k]*y[i]))-((x[j]*y[i])+(x[k]*y[j])+(x[i]*y[k])))/2.;
                    
                  if(min>cS&&cS!=0)
                      min=cS;
                }
            }
        }
        printf("%lf",min);
        return 0;
    }
cs


<설명>

점의 좌표가 주어졌을 때 삼각형의 넓이를 구할 수 있는 공식을 활용한다.

넓이가 0인 것은 삼각형이 아니기 때문에, 넓이가 0인 도형은 제외한다.


'공부 > 2018-2 프로그래밍연습' 카테고리의 다른 글

17. swap  (0) 2018.12.13
16. Binary Search  (0) 2018.12.12
14. Ranking  (0) 2018.12.12
13. Prime Number  (0) 2018.12.12
12. Closest Distance Points  (1) 2018.12.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함