반응형

● 문제 접근 과정

1.Equilateral :  세 변의 길이가 모두 같은 경우

Isosceles : 두 변의 길이만 같은 경우

Scalene : 세 변의 길이가 모두 다른 경우

단 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우에는 "Invalid" 를 출력한다. 예를 들어 6, 3, 2가 이 경우에 해당한다. 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못한다.

2.  해당 조건에 맞게 if문을 사용하여 구현.

● 구현

#include <algorithm>
#include <iostream>
using namespace std;

int main() {
  int s1, s2, s3, max_side;

  while (1) {
    cin >> s1 >> s2 >> s3;
    if (s1 == 0 && s2 == 0 && s3 == 0)
      break;

    max_side = max(s1, max(s2, s3));

    if (max_side >= s1 + s2 + s3 - max_side)
      cout << "Invalid" << endl;
    else if (s1 == s2 && s2 == s3)
      cout << "Equilateral" << endl;
    else if (s1 == s2 || s2 == s3 || s1 == s3)
      cout << "Isosceles" << endl;
    else
      cout << "Scalene" << endl;
  }

  return 0;
}

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

 

5073번: 삼각형과 세 변

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

www.acmicpc.net

 

 

 

반응형

+ Recent posts