나만 보는 일기장

코딩 테스트 준비하며 적는 유용한 코드 & 기타 등등 본문

개발

코딩 테스트 준비하며 적는 유용한 코드 & 기타 등등

Patrick0422 2022. 11. 16. 19:47

최대공약수 구하기

fun gcd(a: Int, b: Int): Int = if (b != 0) gcd(b, a % b) else a

최소공배수 구하기

fun lcm(a: Int, b: Int): Int = a * b / gcd(a, b)

tailrec fun gcd(a: Int, b: Int): Int = if (b == 0) a else gcd(b, a % b)

리스트 분할

val list = listOf(4, 3, 1, 6, 3, 2, 7, 5, 4)

println(list.chunked(2).joinToString())
println(list.chunked(3).joinToString())
println(list.chunked(4).joinToString())

다중 조건 정렬

val sortedList = list.sortedWith(compareBy(
    { 조건 A },
    { 조건 B }
))

항상 .sortedBy { }를 자주 사용했는데, .sortedWith { }에 compareBy()를 사용하면 다중 조건 정렬을 구현할 수 있다.

 

[Android, Kotlin] sortedWith()와 compareBy()를 사용한 collection의 다중 정렬 기준 설정

문제 : 등록한 운송장 리스트의 배송 상태가 업데이트 될 때, 업데이트 된 배송 상태에 따라 리스트의 정렬이 필요했다. 다음과 같은 형태의 데이터를 가지는 TrackingInfoCompany 객체의 List를 정렬해

hungseong.tistory.com

계속 추가 예정...

Comments