Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Rxjava Observable
- 스택 자바 코드
- 안드로이드 라이선스 종류
- 안드로이드 os 구조
- ANR이란
- 멤버변수
- rxjava cold observable
- rxjava disposable
- 스택 큐 차이
- 플러터 설치 2022
- android retrofit login
- rxjava hot observable
- 2022 플러터 설치
- 안드로이드 라이선스
- 안드로이드 레트로핏 crud
- jvm 작동 원리
- android ar 개발
- 클래스
- 서비스 쓰레드 차이
- 안드로이드 레트로핏 사용법
- 객체
- 안드로이드 유닛 테스트 예시
- 안드로이드 유닛 테스트
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 유닛테스트란
- jvm이란
- 자바 다형성
- 큐 자바 코드
- 서비스 vs 쓰레드
- ar vr 차이
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 삼각형의 완성조건 (1) (Kotlin) 본문
728x90
반응형
선분 3개로 삼각형을 만들려면 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 한다.
삼각형의 세 변의 길이가 담긴 배열 sides가 매개변수로 주어질 때, 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 리턴하는 solution()을 완성하라
내림차순 정렬해서 2번, 3번 값 더한 다음 1번 값보다 작은지 판단해서 숫자를 리턴시키면 된다.
class Solution {
fun solution(sides: IntArray): Int {
val list = sides.toList().sortedDescending()
return if (list[1] + list[2] > list[0]) {
1
} else {
2
}
}
}
다른 사람의 풀이를 참고하니 굳이 내림차순 정렬하지 않아도 해결할 수 있는 방법이 있었다.
class Solution {
fun solution(sides: IntArray) = sides.sorted().let { (x, y, z) -> if (x + y > z) 1 else 2 }
}
코틀린이 지원하는 기능 중 범위 함수라는 것이 있다. 그 중 let을 써서 오름차순 정렬된 리스트(1, 2, 3) 안의 1번, 2번 값을 더해서 3번보다 크고 작은 경우의 값을 각각 리턴시키면 더 간결하게 코드를 작성할 수 있다.
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 369게임 (Kotlin) (0) | 2023.01.01 |
---|---|
[Algorithm] 프로그래머스 - 가까운 수 (Kotlin) (0) | 2022.12.31 |
[Algorithm] 프로그래머스 - 중복된 문자 제거 (Kotlin) (0) | 2022.12.30 |
[Algorithm] 프로그래머스 - 배열 원소의 길이 (Kotlin) (0) | 2022.12.30 |
[Algorithm] 프로그래머스 - 컨트롤 제트 (Kotlin) (0) | 2022.12.30 |
Comments