# Check if an N-sided Polygon is possible from N given angles

Given an array arr[] of N elements, where each element represents an angle(in degrees) of a polygon, the task is to check whether it is possible to make an N-sided polygon with all the given angles or not. If it is possible then print Yes else print No.

Examples:

Input: N = 3, arr[] = {60, 60, 60}
Output: Yes
Explanation: There exists a triangle(i.e. a polygon) satisfying the above angles. Hence the output is Yes.

Input: N = 4, arr[] = {90, 90, 90, 100}
Output: No
Explanation: There does not exist any polygon satisfying the above angles. Hence the output is No.

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: A N-sided polygon is only possible if the sum of all the given angles is equal to 180*(N-2). Therefore the ides is to find the sum of all the angles given in the array arr[] and if the sum is equal to 180*(N-2) then print Yes, else print No.

Below is the implementation of the above approach:

 `// C++ program for the above approach  ` `#include   ` `using` `namespace` `std;  ` ` `  `// Function to check if the polygon  ` `// exists or not  ` `void` `checkValidPolygon(``int` `arr[], ``int` `N)  ` `{  ` `    ``// Initialize a variable to  ` `    ``// store the sum of angles  ` `    ``int` `sum = 0;  ` ` `  `    ``// Loop through the array and  ` `    ``// calculate the sum of angles  ` `    ``for` `(``int` `i = 0; i < N; i++) {  ` `        ``sum += arr[i];  ` `    ``}  ` ` `  `    ``// Check the condition for  ` `    ``// an N-side polygon  ` `    ``if` `(sum == 180 * (N - 2))  ` `        ``cout << ``"Yes"``;  ` `    ``else` `        ``cout << ``"No"``;  ` `}  ` ` `  `// Driver Code  ` `int` `main()  ` `{  ` `    ``int` `N = 3;  ` ` `  `    ``// Given array arr[]  ` `    ``int` `arr[] = { 60, 60, 60 };  ` ` `  `    ``// Function Call  ` `    ``checkValidPolygon(arr, N);  ` ` `  `    ``return` `0;  ` `} `

 `// Java program for the above approach  ` `import` `java.util.*;  ` ` `  `class` `GFG{  ` `     `  `// Function to check if the polygon  ` `// exists or not  ` `static` `void` `checkValidPolygon(``int` `arr[], ``int` `N)  ` `{  ` `     `  `    ``// Initialize a variable to  ` `    ``// store the sum of angles  ` `    ``int` `sum = ``0``;  ` ` `  `    ``// Loop through the array and  ` `    ``// calculate the sum of angles  ` `    ``for``(``int` `i = ``0``; i < N; i++)  ` `    ``{  ` `        ``sum += arr[i];  ` `    ``}  ` ` `  `    ``// Check the condition for  ` `    ``// an N-side polygon  ` `    ``if` `(sum == ``180` `* (N - ``2``))  ` `        ``System.out.println(``"Yes"``);  ` `    ``else` `        ``System.out.println(``"No"``);  ` `}  ` `     `  `// Driver code  ` `public` `static` `void` `main(String[] args)  ` `{  ` `    ``int` `N = ``3``;  ` `     `  `    ``// Given array arr[]  ` `    ``int` `arr[] = { ``60``, ``60``, ``60` `};  ` ` `  `    ``// Function call  ` `    ``checkValidPolygon(arr, N);  ` `}  ` `}  ` ` `  `// This code is contributed by offbeat  `

 `# Python3 program for the above approach ` ` `  `# Function to check if the polygon  ` `# exists or not  ` `def` `checkValidPolygon(arr, N):  ` ` `  `    ``# Initialize a variable to  ` `    ``# store the sum of angles  ` `    ``Sum` `=` `0` ` `  `    ``# Loop through the array and  ` `    ``# calculate the sum of angles  ` `    ``for` `i ``in` `range``(N):  ` `        ``Sum` `+``=` `arr[i]  ` ` `  `    ``# Check the condition for  ` `    ``# an N-side polygon  ` `    ``if` `Sum` `=``=` `180` `*` `(N ``-` `2``):  ` `        ``print``(``"Yes"``) ` `    ``else``: ` `        ``print``(``"No"``) ` `         `  `# Driver Code ` `N ``=` `3` ` `  `# Given array arr[]  ` `arr ``=` `[ ``60``, ``60``, ``60` `]  ` ` `  `# Function Call  ` `checkValidPolygon(arr, N)  ` ` `  `# This code is contributed by divyeshrabadiya07 `

 `// C# program for the above approach ` `using` `System; ` ` `  `class` `GFG{ ` `     `  `// Function to check if the polygon ` `// exists or not ` `static` `void` `checkValidPolygon(``int` `[]arr, ``int` `N) ` `{ ` `     `  `    ``// Initialize a variable to ` `    ``// store the sum of angles ` `    ``int` `sum = 0; ` ` `  `    ``// Loop through the array and ` `    ``// calculate the sum of angles ` `    ``for``(``int` `i = 0; i < N; i++) ` `    ``{ ` `        ``sum += arr[i]; ` `    ``} ` ` `  `    ``// Check the condition for ` `    ``// an N-side polygon ` `    ``if` `(sum == 180 * (N - 2)) ` `        ``Console.Write(``"Yes"``); ` `    ``else` `        ``Console.Write(``"No"``); ` `} ` `     `  `// Driver code ` `public` `static` `void` `Main(``string``[] args) ` `{ ` `    ``int` `N = 3; ` `     `  `    ``// Given array arr[] ` `    ``int` `[]arr = { 60, 60, 60 }; ` ` `  `    ``// Function call ` `    ``checkValidPolygon(arr, N); ` `} ` `} ` ` `  `// This code is contributed by rutvik_56 `

Output:
```Yes
```

Time Complexity: O(N), where N is the length of the array.
Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

Article Tags :
Practice Tags :