본문 바로가기

Kotlin7

[Kotlin] Kotlin에서 Queue 사용하기 안녕하세요. 이번에는 Kotlin에서 queue를 사용하는 방법을 알아보겠습니다. Queue란, Queue는 FIFO(First in First Out) 선입선출을 하는 자료구조입니다. 들어온 순서대로 나가는 특징이 있고 쉽게 줄 서기를 생각하시면 됩니다. 삽입과 삭제 시 O(1)이라는 시간복잡도를 가지며, 검색은 O(n)이라는 시간복잡도를 가집니다. Queue 사용법 Kotlin에서는 따로 Queue를 제공해주지는 않습니다. Kotlin은 Java와 100% 호환되기 때문에 Java의 Queue 인터페이스 및 구현체를 그대로 사용하면 됩니다. 코드로 알아보겠습니다. import java.util.LinkedList fun main() { // 큐 생성 val queue = LinkedList() //.. 2024. 1. 9.
[Kotlin] 배열, 리스트 자르기 안녕하세요. 이번에는 Kotlin에서 배열, 리스트를 자르는 코드에 대하여 알아보았습니다. 배열, 리스트 자르는 코드 배열과 리스트를 자르는 코드에는 slice, sliceArray, copyOfRange, subList 등이 있습니다. 이제 하나씩 알아보도록 하겠습니다. Slice, SliceArray 란, Slice는 파라미터로 리스트를 전달해 주고, 원본 list에서, 파라미터로 받은 list의 element와 같은 인덱스의 값으로 된 리스트를 반환합니다. 코드로 확인해 보겠습니다. val list = mutableListOf(1, 2, 3, 4, 5) println(list.slice(2..4))) // [3, 4, 5] val array = intArrayOf(1, 2, 3, 4, 5) prin.. 2024. 1. 4.
[Kotlin] sumOf 함수를 알아보자. 이번에는 프로그래머스 문제를 풀다가 sumOf 함수를 알게 되어서 기록용으로 남겨봅니다. SumOf 함수란, SumOf 함수는 Kotlin 에서 제공해 주는 함수입니다. 위의 사진을 보면 SumOf 함수는 배열의 각 요소에 적용된 선택기 함수에 의해 생성된 모든 값의 합계를 반환한다고 나와있습니다. SumOf 함수 사용법 그래서 저희가 원하는 것은 sumOf 함수를 어떻게 사용하는지와 나오는 결괏값을 알아보겠습니다. val score = intArrayOf(0, 2, 4, 8, 10) val sum = score.sumOf { it } println("sum : $sum") // sum : 24 이렇게 sumOf를 통해서 저희는 합계를 쉽게 구할 수 있습니다. 과거의 저는 for문 or forEach문을.. 2023. 12. 24.
[Kotlin] Collect vs CollectLatest에 대하여 알아보자. 안녕하세요. 오늘은 Flow에서 Collect와 CollectLatest에 대하여 알아보려고 합니다. Collect는 무엇인가? Collect는 주로 Flow 및 Kotlin Coroutines와 관련된 개념 중 하나입니다. collect 함수는 Flow에서 값을 수집하여 처리하는데 사용됩니다. Kotlin의 Flow는 비동기적인 연산을 처리할 수 있는 스트림이며, collect는 Flow에서 발생하는 값을 수집하고 처리하는 메서드 입니다. val count = flow { for(i in 1..10) { emit(i) delay(100) } } fun getCount() { lifecycleScope.launch { count.collect { delay(1000) println("${it} 번째").. 2023. 12. 20.
[Kotlin] 요일 구하는 방법 이번에는 안드로이드 날씨앱을 구현하는 중에 요일이 필요하여 요일을 구하는 방법을 알아보았습니다. 1. 현재 날짜의 요일 구하는 방법 val currentDate = LocalDate.now() // 현재 날짜의 요일 가져오기 val dayOfWeek: DayOfWeek = currentDate.dayOfWeek println("현재 요일: $dayOfWeek") // 현재 요일: SATURDAY 1번 방법은 LocalDate를 가져와서 DayOfWeek()에서 제공하는 dayOfWeek을 이용하는 방법입니다. 2 - 1. 입력 데이터를 통해서 요일을 구하는 방법 val inputString = "20231216" // SimpleDateFormat을 사용하여 Date 객체로 변환 val sdf = Sim.. 2023. 12. 17.
[Kotlin] 기초 문법 : flatten() 함수 Flatten 함수 flatten 함수는 다차원 배열 이나 리스트를 1차원 배열로 만들어 주는 함수입니다. 위의 사진을 보면 주어진 배열에서 모든 배열의 요소들을 단일 목록으로 반환해 준다고 합니다. 코드를 보면서 확인해 보겠습니다. val deepArray = arrayOf( arrayOf(1), arrayOf(2, 3), arrayOf(4, 5, 6) ) println(deepArray.flatten()) // [1, 2, 3, 4, 5, 6] deepArray안에 들어있는 요소들을 1차원 배열로 만들어주는 것을 확인할 수 있었습니다. Array뿐만 아니라 List에서도 똑같은 결과를 받을 수 있습니다. val deepList = listOf( listOf(1), listOf(2, 3), listOf.. 2023. 12. 16.
[Kotlin] tailrec 꼬리 재귀 함수에 대하여 알아보기 Tailrec(꼬리 재귀)란, 재귀 함수 내부의 재귀 호출에서 반환된 결괏값을 갖고 어떤 추가 연산도 수행하지 않으며 즉시 반환하는 식으로 작성된 재귀 함수를 꼬리 재귀(tail recursion) 함수라 합니다. 여기서 꼬리 재귀 함수를 알아가기 전에 재귀 함수를 간단히 알아봐야겠습니다. 재귀 함수란, 재귀 함수는 함수 내에서 자기 자신을 호출하는 방식으로 동작하는 함수를 말합니다. 이것은 간단하게 코드를 작성하고 이해하기 쉽게 만들 수 있지만, 재귀 호출이 깊어지면 스택 오버플로우와 같은 문제가 발생할 수 있습니다. 재귀 함수란, 재귀 함수는 함수 내에서 자기 자신을 호출하는 방식으로 동작하는 함수를 말합니다. 이것은 간단하게 코드를 작성하고 이해하기 쉽게 만들 수 있지만, 재귀 호출이 깊어지면 스택.. 2023. 12. 8.
반응형