YunDev

백준 5073번[C] - 상세 풀이 본문

Programming/Baekjoon Program

백준 5073번[C] - 상세 풀이

S준 2024. 1. 22. 21:47

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

 

5073번: 삼각형과 세 변

각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.

www.acmicpc.net


#include <stdio.h>

int main() {
    int n1, n2, n3;
    
    while(1)  {
      scanf("%d %d %d", &n1, &n2, &n3);
      if(n1 == 0 && n2 == 0 && n3 == 0) {
          break;
      }
        
     if(n1 == n2 && n2 == n3) {
     printf("Equilateral\n");
  }
  else if(n1 >= n2+n3 || n2 >= n1+n3 || n3 >= n1+n2) {
     printf("Invalid\n");
  }
  else if(n1 == n2 || n2 == n3 || n1 == n3) {
      printf("Isosceles\n");
  }
  else{
      printf("Scalene\n");
  }
        
}
      
        
    return 0;
}

풀이 : 삼각형의 세 변의 길이를 입력받고 각 조건을 비교해서 일치하는 결과를 출력하면 됩니다.

  • Equilateral :  세 변의 길이가 모두 같은 경우
  • Isosceles : 두 변의 길이만 같은 경우
  • Scalene : 세 변의 길이가 모두 다른 경우

여기서 중요한 것은 삼각형의 성립 조건입니다.  가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못합니다. 따라서 삼각형의 조건을 만족하지 못하는 경우 " Invalid"를 출력해야합니다. 
순서대로 조건을 비교했을 때 삼각형의 조건은 만족하고, 세 변의 길이가 같지 않으며 두 변의 길이도 같지 않다는 것은 세 변의 길이가 모두 다른 삼각형만 남기 때문에 더 비교할 필요없이 else로 처리해주면 됩니다.

'Programming > Baekjoon Program' 카테고리의 다른 글

백준 1934번[C] - 상세 풀이  (0) 2024.01.24
백준 1269번[C] - 상세 풀이  (2) 2024.01.23
백준 9506번[C] - 상세 풀이  (2) 2024.01.21
백준 5086번[C] - 상세 풀이  (0) 2024.01.20
백준 1978번[C] - 상세 풀이  (1) 2024.01.19