Kotlin 조합(Combination) 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin 조합(Combination)

1. 조합 (Combination) 조합 : 서로 다른 n개의 원소 중에서 순서에 상관없이 r개를 선택하는 것 ex) a, b, c 가 있을 경우 1개 선택 -> (a), (b), (c) 2개 선택 -> (a,b), (a,c), (b,c) 3개 선택 -> (a,b,c) 이처럼 조합의 경우의 수를 구할 수 있다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM fun combination(answer: MutableList, el: List, ck: Array, start: Int, target: Int) { if(target == 0) { answer.addAll( listOf(el.filterIndexed { index, t -> ck[index] }) ) } else { fo..

2020.12.05 게시됨

Kotlin Permutation(순열) 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin Permutation(순열)

1. Permutation - 순열 순열 : 서로 다른 n개의 원소에서 r개를 중복없이 골라 순서에 상관있게 나열하는 것 ex) a, b, c 가 있다면 1개 선택 -> (a), (b), (c) 2개 선택 -> (a,b), (a,c), (b,a), (b,c), (c,a), (c,b) 3개 선택 -> (a,b,c), (a,c,b), (b,a,c), (b,c,a), (c,a,b), (c,b,a) 이처럼 순열을 구할 수 있다. Kotlin에서는 회귀와 flatMap 함수를 사용하여 순열을 구현할 수 있다. Kotlin flatMap - 원소 값 변경 및 추가 1. flatMap flatMap 함수는 map 함수와 유사한 동작을 한다. 2020/11/25 - [Kotlin/Collections] - Kotlin..

2020.12.04 게시됨

Kotlin pi, 절댓값, 대소 비교 - PI, abs, max, min 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin pi, 절댓값, 대소 비교 - PI, abs, max, min

1. PI, abs, max, min PI, abs, max, min 각 함수들을 사용하여 파이 값, 절댓값, 두 수 중 더 큰 값, 두 수 중 더 작은 값을 구할 수 있다. PI 값을 사용하여 원의 넓이를 구하거나 abs 함수를 사용하여 두 점 사이의 거리를 절댓값으로 구할 수도 있다. 이러한 수학 함수들은 kotlin.math 아래에 존재하므로 'import kotlin.math.*'를 해주어야 한다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM import kotlin.math.* fun main(args : Array) { var r = 5 println("PI : $PI") println("E : $E") println("반지름 ${r}인 원의 넓이 : ${r * r..

2020.12.01 게시됨

Kotlin StringBuilder - 문자열 효율적으로 다루기 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin StringBuilder - 문자열 효율적으로 다루기

1. StringBuilder String 문자열은 참조 타입으로써 만약 문자열 뒤에 문자열을 추가하는 것 같은 수정하는 작업을 한다면 기존 참조하고 있던 곳에 추가하는 것이 아니라 추가된 문자열을 갖는 새로 String을 생성 후 참조를 바꾸는 형식이다. 이러한 연산이 끝난 후 "ab"라는 쓰레기가 남게 된다. 그리고 이러한 연산을 많아질수록 자원 관리와 같은 점에서 비효율적이다. 이러할 경우 사용할 수 있는 것이 StringBuilder이며 이는 String 처럼 참조를 바꾸는 식이 아니라 참조하고 있는 값을 바꾸는 식이다. 따라서 문자열을 수정하는 작업이 많을 경우 String을 사용하기보다는 StringBuilder를 사용해야 좋다. 2. 코 드 환경 : Kotlin Version = 1.4.20..

2020.11.30 게시됨

Kotlin 반올림, 올림, 내림 - round, ceil, floor 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin 반올림, 올림, 내림 - round, ceil, floor

1. round, ceil, floor - 반올림, 올림, 내림 반올림, 올림, 내림의 수를 구하기 위해서는 다음 함수를 사용할 수 있다. round : 반올림 public actual inline fun round(x: Double): Double = nativeMath.rint(x) ceil : 올림 public actual inline fun ceil(x: Double): Double = nativeMath.ceil(x) floor : 내림 public actual inline fun floor(x: Double): Double = nativeMath.floor(x) 함수들을 사용할 때 각 함수들은 인수로 Double 타입을 받는 것을 주의하여 사용해야 한다. 각 함수들을 사용하기 위해서는 impo..

2020.11.30 게시됨

Kotlin 제곱, 제곱근 구하기 - sqrt, pow, hypot 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin 제곱, 제곱근 구하기 - sqrt, pow, hypot

1. sqrt, pow, hypot - 제곱, 제곱근, 제곱 합의 제곱근 제곱, 제곱근, 제곱 합의 제곱근을 구하기 위하여 다음 함수들을 사용할 수 있다. sqrt : 제곱근 public actual inline fun sqrt(x: Double): Double = nativeMath.sqrt(x) pow : n 제곱 수 public actual inline fun Double.pow(n: Int): Double = nativeMath.pow(this, n.toDouble()) hypot : 두 수 각각의 제곱 수를 합한 수의 제곱근 public actual inline fun hypot(x: Double, y: Double): Double = nativeMath.hypot(x, y) 각 인수들과 반환형..

2020.11.29 게시됨

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 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 게시됨