Skip to content

Commit 55241f1

Browse files
committed
issue #28 Maximum Perimeter Triangle java w/ Explanation
1 parent 1e43be6 commit 55241f1

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package hackerrank;
2+
3+
import java.util.Arrays;
4+
5+
public class MaximumPerimeterTriangle {
6+
7+
static int[] maximumPerimeterTriangle(int[] sticks) {
8+
// a non-degenerate triangle이 되는 가장 긴 둘레를 구하는 문제
9+
// a non-degenerate triangle 3가지 조건
10+
// 1. a+b>c
11+
// 2. a+c>b
12+
// 3. b+c>a
13+
14+
int[] answerArr = new int[3];
15+
Arrays.sort(sticks);
16+
17+
// non-degenerate triangle의 조건 만족하는 지 확인하기
18+
// 반복문을 통해서 answerArr요소는 조건에 부합하는 가장 큰 숫자가 된다.-> 가장 긴 둘레 조건 충족
19+
boolean isNonDegenerateTriangle = false;
20+
for (int i = 0; i < sticks.length - 2; i++) {
21+
int a = sticks[i];
22+
int b = sticks[i + 1];
23+
int c = sticks[i + 2];
24+
25+
if ((a + b) > c && (a + c) > b && (b + c) > a) {
26+
answerArr[0] = a;
27+
answerArr[1] = b;
28+
answerArr[2] = c;
29+
isNonDegenerateTriangle = true;
30+
}
31+
}
32+
33+
if (!isNonDegenerateTriangle) {
34+
return new int[]{-1};
35+
}
36+
37+
System.out.print(Arrays.toString(answerArr));
38+
return answerArr;
39+
}
40+
41+
public static void main(String[] args) {
42+
System.out.println(maximumPerimeterTriangle(new int[]{1, 2, 3, 4, 5, 10}) + ", ans: [3,4,5]");
43+
System.out.println(maximumPerimeterTriangle(new int[]{1, 1, 1, 3, 3}) + ", ans: [1,3,3]");
44+
System.out.println(maximumPerimeterTriangle(new int[]{1,1,1,2,3,5}) + ", ans: [1,1,1]");
45+
}
46+
}

0 commit comments

Comments
 (0)