본문 바로가기

전체 글236

[CS] 가비지 컬렉션 (Garbase Collection, GC) 가비지 컬렉션 (Garbase Collection, GC)메모리 관리 방법JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당됐던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 프로세스프로그램을 개발하다 보면 유효하지 않은 메모리인 Garbage 가 발생하게 되는데, *메모리 누수를 방지하기 위해서 이러한 불필요한 메모리를 제거해야 한다.C / C++ 언어에서는 가비지 컬렉션이 없어 free() 라는 함수를 통해 직접 메모리를 해제해주어야 한다.Java 나 Kotlin 을 이용하면 가비지 컬렉션가 주기적으로 검사하여 메모리를 청소해 준다.하지만 자동으로 처리해 준다 해도 메모리가 언제 해제되는지 정확하게 알 수 없어 제어하기 힘들고, 가비지 컬렉션이 동작하는 동안에.. 2024. 8. 27.
[LeetCode][Kotlin] 347. Top K Frequent Elements 347. Top K Frequent ElementsGiven an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.정수 배열 nums와 정수 k가 주어지면 가장 자주 사용되는 k개의 요소를 반환합니다. 어떤 순서로든 답변을 반환할 수 있습니다. Example 1:Input: nums = [1,1,1,2,2,3], k = 2Output: [1,2] Example 2:Input: nums = [1], k = 1Output: [1] Constraints:1 -10^4 k is in the range [1, the number of unique elements.. 2024. 8. 27.
[Kotlin][String] replaceRange 주어진 범위의 부분이 대체 문자 시퀀스로 대체되는 이 문자 시퀀스의 내용이 포함된 문자 시퀀스를 반환합니다.public fun CharSequence.replaceRange(startIndex: Int, endIndex: Int, replacement: CharSequence): CharSequence { if (endIndex  replaceRange - Kotlin Programming Language kotlinlang.org 2024. 8. 27.
[Kotlin][String] replace 모든 oldChar 가 newChar 로 대체된 새 문자열을 반환합니다.public actual fun String.replace(oldValue: String, newValue: String, ignoreCase: Boolean = false): String { run { var occurrenceIndex: Int = indexOf(oldValue, 0, ignoreCase) // FAST PATH: no match if (occurrenceIndex = length) break occurrenceIndex = indexOf(oldValue, occurrenceIndex + searchStep, ignoreCase) } whi.. 2024. 8. 27.
[Kotlin][Iteration Operation] repeat 주어진 함수 작업을 지정된 횟수만큼 실행합니다. 현재 반복의 0부터 시작하는 인덱스가 작업에 매개변수로 전달됩니다.public inline fun repeat(times: Int, action: (Int) -> Unit) { contract { callsInPlace(action) } for (index in 0 until times) { action(index) }}repeat(3) { index -> print("Hello ")} // Hello Hello Hello n 번 반복된 이 문자 시퀀스를 포함하는 문자열을 반환합니다.public actual fun CharSequence.repeat(n: Int): String { require(n >= 0) { "Coun.. 2024. 8. 27.
[CS] 가상 메모리 (Virtual Memory) 메모리 (Memory)프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치메모리는 크게 내부 기억장치인 주기억장치(DRAM, CPU 안에 있는 레지스터와 캐시)와 외부 기억장치인 보조 기억장치(SSH, HDD)로 분류된다. 가상 메모리 등장 배경1. 초창기 컴퓨터에서는 사용 가능한 RAM 의 용량이 가장 큰 실행 애플리케이션의 주소 공간보다 커야 했다. 그렇지 않을 경우 "메모리 부족" 오류로 인해 해당 애플리케이션을 실행할 수 없었다.즉, 컴퓨터에 실제로 장착된 물리 메모리(RAM)의 최대 크기는 CPU 에 의해 제한되기 때문에 *운영체제는 물리 메모리보다 큰 *프로세스를 실행시킬 수 없었다.운영체제 : 컴퓨터 시스템의 핵심 소프트웨어로, 컴퓨터 하드웨어와 응용 프로그램 간의 상호작용을 관.. 2024. 8. 23.
[Kotlin][Collection] sortedBy / sortedByDescending 지정된 선택기 함수에 의해 반환된 값의 자연 정렬 순서에 따라 정렬된 모든 요소의 목록을 반환합니다. 정렬이 안정적입니다. 이는 동일한 요소가 정렬 후에도 서로 상대적인 순서를 유지함을 의미합니다.public inline fun > Iterable.sortedBy(crossinline selector: (T) -> R?): List { return sortedWith(compareBy(selector))}public fun Iterable.sortedWith(comparator: Comparator): List { if (this is Collection) { if (size () as Array).apply { sortWith(comparator) }.asList() } .. 2024. 8. 23.