[Lv. 0] 삼각형의 완성조건 (1)프로그래머스/Level 02023. 3. 28. 12:51
Table of Contents
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120889
난이도 : Level.0
언어 : Kotlin
문제 설명 :
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한 사항 :
- sides의 원소는 자연수입니다.
- sides의 길이는 3입니다.
- 1 ≤ sides의 원소 ≤ 1,000
입출력 예 :
sides | result |
[1, 2, 3] | 2 |
[3, 6, 2] | 2 |
[199, 72, 222] | 1 |
풀이 :
class Solution {
fun solution(sides: IntArray): Int {
return if (sides.sumOf { it } - sides.maxOf { it } > sides.maxOf { it }) {
1
} else {
2
}
}
}
처음에 아래와 같이 작성했다가 몇몇 테스트 케이스에 통과하지 못했었다.
class Solution {
fun solution(sides: IntArray): Int {
return if (sides.maxOf { it } < sides.filter { it != sides.maxOf { it -> it } }.sumOf { it }) {
1
} else {
2
}
}
}
이유가 무엇인고 곰곰히 생각해보니, 삼각형 중엔 직각 삼각형 뿐만 아니라 이등변 삼각형도 존재했었다.
같은 길이에 가장 긴 길이가 2개이니 계산 방식이 틀릴 수 밖에 없던 것.
'프로그래머스 > Level 0' 카테고리의 다른 글
[Lv. 0] k의 개수 (0) | 2023.03.28 |
---|---|
[Lv. 0] 중복된 문자 제거 (0) | 2023.03.28 |
[Lv. 0] 가까운 수 (0) | 2023.03.28 |
[Lv. 0] 369게임 (0) | 2023.03.28 |
[Lv. 0] 암호 해독 (0) | 2023.03.27 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!