list

    LinkedList란 무엇인가? 단일 연결 리스트, 양방향 연결 리스트 간단하게 구현해보기

    LinkedList란 무엇인가? LinkedList는 각 노드에서 단방향으로 포인터를 가진 단일 연결 리스트(Singly Linked List)와 양방향으로 포인터를 가진 양방향 연결 리스트(Doubly Linked List)로 나뉜다. 단일 연결 리스트 단일 연결 리스트(Singly Linked List)는 각 노드에서 다음 노드에 대한 참조를 가지고 있어 다음 노드로 이동할 수는 있지만 이전 노드로 이동할 수는 없는 리스트이다. 이 때문에 이전 노드와 다음 노드의 참조를 모두 가지는 Double Linked List에 비해 메모리 공간을 약간 덜 차지하는 장점이 있으며, 특정 노드 삭제를 위해 삭제할 노드의 이전 노드의 포인터를 다음 노드로 변경하면 되기 때문에 삭제가 매우 간단하다. 하지만 여러 단..

    [Kotlin Collection] 5. Kotlin reduce 를 알아보자 : 재귀적으로 수행된 결과값으로 반환 값을 만드는 함수

    목차로 돌아가기 [Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기 목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요 Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를 kotlinworld.com 목표 reduce의 개념을 이해한다. reduce를 사용하는 방법을 익힌다. reduce() 개요 reduce는 순서가 있는 데이터(CharSequence, Iterable 등)에 대해 각 데이터에 대해 연산을 재귀적으로 수행해 반환해주는 함수이다. 시작 값은 맨 앞의 데이터이며, 반환 데이터 타입은 맨 앞의 데이터 타입을 따른다. 예를 들어 아래와 같은 sampl..

    [Kotlin Collection] 4. Kotlin groupBy, zip, distinct 를 이용하기 : groupby를 이용해 그룹핑, zip을 이용해 조합, distinct를 이용해 중복제거하기

    목차로 돌아가기 [Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기 목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요 Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를 kotlinworld.com 목표 그룹핑 함수 groupBy의 개념과 동작을 익힌다. 두개의 Collection을 조합하는 zip의 개념과 동작을 익힌다. 중복제거 함수 distinct의 동작을 익힌다. 확장함수 목록 groupBy groupBy는 keySelector함수를 통해 key를 select하여 해당 Key로 Map을 만드는(그룹화 하는) 함수이다. public inline fun I..

    [List 자료구조] 1. 코틀린의 리스트(List) 자료구조

    목표 리스트의 특징을 이해한다. 코틀린에서 리스트가 구현된 방식을 안다. 리스트(List) 리스트(List)란 하나의 변수에 여러 값을 저장하기 위해 불연속적인 메모리 공간을 차지하는 동적(Dynamic)인 자료구조이다. 개요 리스트는 여러 값을 저장하기 위해 메모리의 불연속적인 공간을 차지하고 있다. 불연속적인 공간을 차지하고 있으므로, 다음 값을 넣기 위해서는 비어있는 메모리 공간 어느 곳에나 변수를 넣으면 된다. 해당 주소값을 리스트에 추가 함으로써 리스트에 값 인스턴스의 추가가 완료된다. Kotlin에서 사용하는 List는 두가지 관점에서 나눌 수 있다. 하나는 가변성이고 다른 하나는 자료구조이다. 가변성은 변화 가능(Mutable)한지 아니면, 불가능한지(Immutable)에 대한 성질이며, K..

    [Kotlin Collection] 1.1 Kotlin forEach, forEachIndexed 이용하여 데이터 조작하기 - 예제 포함

    목차로 돌아가기 [Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기 목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요 Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를 kotlinworld.com 목표 forEach와 관련된 확장함수를 익힌다. 관련 확장함수들을 적시에 사용할 수 있도록 한다. 확장함수 목록 forEach forEach는 각 Iterable에 대한 확장함수로, 기존의 for문을 사용하던 외부 반복(Iteration)에서 내부 반복(Iteration)으로 바꿔줄 수 있게 하여 가독성을 좋게 만든 확장 함수입니다. forEach : forEach..