티스토리 뷰

1. 문제

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

 

 

2. 풀이

#include <stdio.h>

int main(void) {
    int triangle[3] = { 0, };

    while (1)
    {
        int equalCount = 0;
        int max = 0;
        int total = 0;

        // 한 줄 입력받기
        scanf("%d %d %d", &triangle[0], &triangle[1], &triangle[2]);

        // 종료 조건
        if (!triangle[0] && !triangle[1] && !triangle[2]) {
            return 0;
        }

        // 최대값과 총합 계산
        for (int i = 0; i < 3; i++) {
            total += triangle[i];
            if (triangle[i] > max) { 
                max = triangle[i];
            }
        }

        if(triangle[0] == triangle[1]) { equalCount++; }
        if(triangle[0] == triangle[2]) { equalCount++; }
        if(triangle[1] == triangle[2]) { equalCount++; }

         // 삼각형 판별 조건
        if (max >= total - max) {
            printf("Invalid\n");
        } else {
            switch (equalCount) {
                case 3:  // 3개의 변이 같은 경우 (Equilateral)
                    printf("Equilateral\n");
                    break;
                case 1:  // 2개의 변만 같은 경우 (Isosceles)
                    printf("Isosceles\n");
                    break;
                case 0:  // 모두 다른 경우 (Scalene)
                    printf("Scalene\n");
                    break;
            }
        }
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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
글 보관함