Kotlin Deque(덱 or 디큐) 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin Deque(덱 or 디큐)

1. Deque(덱 or 디큐) Deque 덱이라고 부르며 디큐라고로 부른다. Queue가 한쪽으로는 삽입만 하고 다른 한쪽으로 삭제만 가능한 구조였다면 Deque란 양쪽 방향에서 삽입, 삭제가 가능한 자료 구조이다. 상황에 따라 스택이나 큐처럼 사용할 수도 있는 유연함을 갖고 있다. 사용하기 위해서 "import java.util.ArrayDeque" 를 해주어야 한다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM import java.util.ArrayDeque fun main(args : Array) { var dq = ArrayDeque() /* 삽입 */ dq.add(5) dq.addFirst(2) // 앞에 삽입 dq.addLast(4) // 뒤에 삽입 dq.add..

2020.12.02 게시됨

Kotlin Pair, Triple Val cannot be reassigned - Pair 값 수정 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin Pair, Triple Val cannot be reassigned - Pair 값 수정

1. Val cannot be reassigned - Pair 값 수정 Kotlin 에서는 Pair와 Triple에 있는 프로퍼티는 val로 선언되어 Read-only 이다 Kotlin 변수 묶기 Pair, Triple 1. 2개의 변수 묶기 - Pair data class Pair (val first: A, val second: B) Pair 클래스는 다음과 같이 정의되어 있다. Pair 클래스는 data class로서 2개의 변수를 묶어 사용하기 유용하다. fun main().. notepad96.tistory.com 따라서 수정이 가능한 Pair, Triple를 사용하기 위해서는 Kotlin 에서 지원하는 Pair와 Triple을 사용해서는 안된다. 대신 data class를 사용하여 새로운 구조를..

2020.12.02 게시됨

Kotlin 큐(Queue) 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin 큐(Queue)

1. Queue(큐) Queue는 선입선출(먼저 입력된 것이 먼저 출력된다)의 구조를 갖는 자료구조이다. Queue는 다음 그림과 같이 선착순 줄서기와 동일하다고 볼 수 있다. 가장 먼저 줄을 선 사람(가장 먼저 입력된)이 가장 먼저 일을 수행(가장 먼저 출력) 한다. Kotlin 에서는 Stack처럼 구현된 것이 없어 직접 구현하거나 혹은 Java에서 사용하였던 LinkedList와 Queue를 사용할 수 있다. 이를 사용하기 위해서 Queue와 LinkedList를 가져와야 함으로 'import java.util.*'를 해주어야만 한다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM import java.util.* fun main(args : Array) { var q: ..

2020.12.01 게시됨

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 스택(Stack) 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin 스택(Stack)

1. Stack(스택) Stack은 후입선출(나중에 입력된 것이 먼저 출력된다)의 구조를 갖는 자료구조이다. Stack의 구조는 그림과 같이 어느 상자 속에 물건을 넣고 빼는 행위를 하는 것과 동일하다. 이같은 상황에서 나중에 상자에 넣는 물건은 먼저 넣은 물건의 위에 위치하게 되며, 아래에 있는 물건을 꺼내기 위해서는 위에 있는 물건들을 먼저 꺼내야만 한다. 그래서 후입선출(나중에 들어온 것이 가장 먼저 나간다)의 구조인 것이다. Kotlin에서는 구현된 Stack이 없으므로 사용하기 위해서는 직접 구현하거나 Java에 있는 Stack을 사용할 수 있다. 따라서 사용하기 위해서는 'import java.util.Stack' 을 해주어야 한다. 2. 코 드 환경 : Kotlin Version = 1.4...

2020.11.30 게시됨

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