Kotlin 최대공약수/최소공배수 - 유클리드 호제법 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin 최대공약수/최소공배수 - 유클리드 호제법

1. 최대공약수 / 최소공배수 최대공약수(GCD, Greatest Common Divisor) 란, 두 개 혹은 그 이상의 수 간의 공통의 약수들 중 최대, 가장 큰 값을 의미한다. 이러한 최대공약수는 유클리드 호제법을 사용하면 간단하게 구할 수 있으며 구한 최대공약수를 이용하여 최소공배수 또한 구할 수 있다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM fun gcd(a: Int, b:Int): Int = if(b != 0) gcd(b, a % b) else a fun main(args : Array) { var x = 4 var y = 10 println("최대 공약수 : ${gcd(x, y)}") println("최소 공배수 : ${x * y / gcd(x, y)}") ..

2020.11.29 게시됨

Kotlin getOrElse - 잘못된 접근으로 발생하는 에러 제거 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin getOrElse - 잘못된 접근으로 발생하는 에러 제거

1. getOrElse, getOrNull List와 Map과 같은 컬렉션에서 값을 읽을 경우 의도치 않게 현재 인덱스 범위 밖에 인덱스를 사용하여 참조할려고 하던가 존재하지 않는 Key를 사용하여 Value를 읽을려고 시도하여 의도치 않은 값을 얻게 되거나 에러가 발생하는 문제가 존재한다. 이런 경우 사용할 수 있는 것이 getOrElse, getOrNull 이다. getOrElse : 참조할 값이 존재하지 않거나 잘못되었을 경우 지정한 Else 값을 반환받는다. getOrNull : 참조할 값이 존재하지 않거나 잘못되었을 경우 Null을 반환받는다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM fun main(args : Array) { println("==========..

2020.11.28 게시됨

Kotlin UpperCase & LowerCase - 대소문자 검사 및 변환 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin UpperCase & LowerCase - 대소문자 검사 및 변환

1. UpperCase, LowerCase 문자열을 대문자 혹은 소문자로 변환하거나 현재 대문자인지 소문자인지 검사하고 싶을 경우가 있다. 무언가를 판별하는 함수 앞에는 is가 붙는다. isUpperCase 함수 : 대문자라면 true, 아니라면 false 반환 isLowerCase 함수 : 소문자라면 true, 아니라면 false 반환 무언가를 변환하는 함수 앞에는 to가 붙는다. toUpperCase 함수 : 대문자로 변환한다. toLowerCase 함수 : 소문자로 변환한다. 만약 변환할 필요가 없거나 변환할 수 없다면(숫자나 기호) 이러한 부분들은 무시된다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM fun main(args: Array) { var str = "Ag..

2020.11.28 게시됨

Kotlin joinToString -  List 문자열 변환 List to String 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin joinToString - List 문자열 변환 List to String

1. joinToString - List to String List를 print를 사용하여 출력하거나하면 toString이 호출되며 [ ... ] 와 같은 형태로 변환된다. 하지만 리스트의 원소들을 모두 연결한 하나의 문자열로 만들고 싶은 경우가 있으며 이럴 때 사용할 수 있는 것이 joinToString 함수이다. joinToString은 fun Sequence.joinToString( separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequence = "...", transform: ((T) -> CharSequence)? = null )..

2020.11.28 게시됨

Kotlin zip - List 묶기 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin zip - List 묶기

1. zip zip 함수를 사용하면 두 List를 묶어 줄 수 있다. 묶을 때 동일한 Index끼리 묶이므로 Index상 순서가 동일한 서로 연관된 리스트를 더욱 쉽게 사용하기 위하여 묶어줄 수 있을 것이다. zip 함수는 다음과 같이 2가지 형태가 있다. public infix fun Iterable.zip(other: Iterable): List { return zip(other) { t1, t2 -> t1 to t2 } } public inline fun Iterable.zip(other: Iterable, transform: (a: T, b: R) -> V): List { ... } 또한, zip으로 size가 서로 다른 두 리스트를 묶을 경우 size가 더 적은 리스트만큼의 결과를 얻을 수 있다..

2020.11.27 게시됨

Kotlin flatMap - 원소 값 변경 및 추가 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin flatMap - 원소 값 변경 및 추가

1. flatMap flatMap 함수는 map 함수와 유사한 동작을 한다. Kotlin map 함수 - 리스트 값들 변경 1. map 함수 filter 함수가 리스트와 맵 같은 Collections 타입에서 조건에 만족하는 원소를 걸러내는(탐색하는) 함수 였다면 map 함수는 필요하다면 조건에 따라 일정한 연산을 해주고 싶을 경우 사용 notepad96.tistory.com map을 사용하여 조건에 따라 값을 변경하였다면 flatMap 함수 또한 값을 변경할 수도 있으며, 이에 더하여 여러 개의 값을 추가할수도 있다. 따라서 flatMap을 사용하면 어느 값을 분리해서 만들어진 여러 개의 값들을 삽입한 리스트를 만들어 낼 수도 있다. 2. 코 드 환경 : Kotlin Version = 1.4.20, J..

2020.11.27 게시됨

Kotlin partition - 조건에 따라 2개로 분리하기 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin partition - 조건에 따라 2개로 분리하기

1. partition partition 함수를 사용하면 리스트를 특정 조건에 따라 분리할 수 있다. List나 Set에서 사용할 수 있으며 Map에서는 사용이 불가하다. 본래 partition으로 얻을 수 있는 결과물을 얻기 위해서는 저장할 콜렉션(리스트) 선언 + for문 + if문 + 삽입 연산 와 같은 작업을 해주어야 한다. 하지만 partition을 사용함으로써 간단하게 한줄로도 같은 결과를 얻어올 수 있다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM fun main(args: Array) { println("===================LIST=======================") val ml = mutableListOf(5, 4, 1, 2, 3, 6..

2020.11.26 게시됨

Kotlin count - 조건에 만족하는 원소 개수 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin count - 조건에 만족하는 원소 개수

1. count filter가 조건에 일치하는 원소들을 List로 반환해주었다면 count는 조건에 일치하는 원소들의 개수를 반환해 준다. 이는 마치 filter로 구한 List의 Size를 구한것과 같으며, 조건에 만족하는 원소들의 개수만을 이용할 것이라면 count를 사용하면 된다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM fun main(args : Array) { println("=============LIST================") val ml = mutableListOf("abc", "sort", "book", "book4", "roll", "book2", "book3") println(ml) val c1 = ml.count() println("총 개수..

2020.11.26 게시됨