티스토리 뷰
링크 : https://www.hackerrank.com/challenges/maximum-perimeter-triangle/problem
문제> 제공 된 숫자들은 삼각형을 구성 할 변의 길이들.
각 변의 길이를 조합하여 가장 큰 삼각형을 만들어라.
만들지 못할 경우 -1 출력.
* 삼각형의 조건 : 가장 긴 변이 z일 경우. ( x + y > z)
해결방법.
1) 변의 길이들을 정렬.
2) 변의 길이 복사 후 중복 제거.(삼각형의 가장 큰 변 z로 사용. HashSet사용)
3) 출력값에 기본으로 -1을 넣은 리스트를 생성.
4) 큰 삼각형을 찾아야 하기 때문에 큰 값부터 검색.(반복문)
- 중복을 제거한 값(z)이 정렬 된 변의 길이에서 몇번째 인덱스인지 검색.
- z인덱스 - 1을 y로 잡고 y + x가 z보다 큰 값을 검색.
- 없으면 반복. 있다면 출력값의 -1을 지우고 x, y, z를 추가 해서 출력.
'주간 알고리즘풀기' 카테고리의 다른 글
[171213][HackerRank](C#)Intro to Tutorial Challenges (0) | 2017.12.14 |
---|---|
[171212][HackerRank](C#)Alternating Characters (0) | 2017.12.14 |
[171208][Codility](C#)ChocolatesByNumbers (0) | 2017.12.11 |
[171207][HackerRank](C#)Lonely Integer (0) | 2017.12.07 |
[171206][HackerRank](C#)The Hurdle Race (0) | 2017.12.06 |
댓글