본문 바로가기
C/중간고사 대비 (2022 1학기)

[C 백준] 2622번/삼각형 만들기

by Meaning_ 2022. 4. 10.
728x90
반응형

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

 

2622번: 삼각형만들기

같은 길이의 성냥개비가 여러 개 주어져 있다. 이것들을 평면에 늘어놓아서 삼각형을 만들려고 한다. 삼각형의 한 변은 여러 개의 성냥개비를 직선으로 이어서 만들 수 있지만, 성냥개비를 꺾거

www.acmicpc.net

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
31
32
33
34
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <math.h>
 
 
 
int n;
int cnt = 0;
int main() {
    scanf("%d"&n);
 
    for (int a = 1; a < n; a++) {
        for (int b = a; b < n; b++) {
            int c = n - (b + a);
            if (c < b) {
                break;
            }
 
            if (a + b > c) {
                cnt++;
            }
        }
    }
 
    printf("%d",cnt);
 
 
    
 
}
 
cs

 

 

a는 항상 제일 작은 변 b가 그다음 c가 제일 큰변이라고 가정하고 시작한다.

 

삼각형 결정조건인 a+b>c 라는 것으로 삼각형의 개수를 판별해주고

무엇보다 b가 c보다 커지면 그때는 중복되는 것이므로

예를 들어 (1,3,5) (1,5,3)인 경우 전자와 후자는 합동이기에 

break를 걸어준다. continue걸어주면 시간초과에 걸린다!

728x90
반응형

댓글