개발공부/Algorithm

    [알고리즘] Stack 스택: 기본정리 - pop, push, peek, count - Kotlin

    [알고리즘] Stack 스택: 기본정리 - pop, push, peek, count - Kotlin

    목차 스택 자료구조 개념 스택은 아이템을 쌓아 올리는 구조입니다. 제거할 때도 가장 위에 있는 아이템부터 제거하게 되고 추가할 때도 위에서부터 추가합니다. 그래서 스택에는 2가지 동작이 있습니다. 1. push: 스택에서 가장 위에 element를 추가합니다. 2. pop: stack에 가장 위에 있는 element를 제거합니다. 이 의미는 한쪽에서만 데이터를 추가하고 제거할 수 있다는 뜻입니다. 우리는 이러한 stack 구조를 LIFO(last-in-first-out - 가장 마지막으로 추가한 게 가장 먼저 나가는 구조)라고 부릅니다. 스택을 코드로 표현하면 아래와 같습니다. interface Stack { fun push(element:Element) fun pop(): Element? } 스택은 프..

    [알고리즘] LinkedList 링크리스트: 활용 예제 - 뒤집기, 합치기, 가운데 값 찾기 - Kotlin

    [알고리즘] LinkedList 링크리스트: 활용 예제 - 뒤집기, 합치기, 가운데 값 찾기 - Kotlin

    목차 저번 포스트에서는 LinkedList에 개념과 구현 방법을 다뤄봤는데요, [Algorithm] Kotlin LinkedList 개념 - node 추가하기, 제거하기 목차 LinkedList 개념 LinkedList는 각 Node들이 다음 Node에 연결돼있는 리스트입니다. LinkedList에는 두 가지가 있습니다. 1. Singly Linked List: 다음 node에 한 방향으로 연결된 리스트입니다. 2. Doub.. underdog11.tistory.com 이 포스트에서는 LinkedList로 가장 자주 활용되는 3가지 타입에 문제를 다뤄보겠습니다. LinkedList 뒤집기 아래 그림과 같이 LeetCode에 예제를 통해 LinkedList를 뒤집어 보겠습니다. 해설 - Reverse Li..

    [알고리즘] 기본으로 알아야할 Kotlin Collection Interface 종류 및 구현 - Iterable, Collection, MutableIterable, MutableCollection 사용예제

    [알고리즘] 기본으로 알아야할 Kotlin Collection Interface 종류 및 구현 - Iterable, Collection, MutableIterable, MutableCollection 사용예제

    목차 이포스트는 Data Structures & Algorithms in Kotlin을 참고하여 작성하였습니다. Kotlin Collection Interface 이번 포스트에서는 Kotlin Collection Interface에 대해 다뤄보겠습니다. Kotlin Collection Interface 은 무엇일까요? Kotlin Library의 인터페이스는 어떤 타입을 리턴하는지 말해주고 각 타입은, 각각의 특성을 가지고 있습니다. 그리고 Collection Interface는 4 티어로 나눠집니다. 인터페이스 설명 Tier 1 Iterable Iterable 타입은 element를 Iterator를 통해 순차적으로 접근합니다. Tier 2 Collection Iterable 타입인 동시에, eleme..

    [Algorithm] Kotlin LinkedList 개념 및 구현 - 지정한 위치에 node 추가하기, node 제거하기

    [Algorithm] Kotlin LinkedList 개념 및 구현 - 지정한 위치에 node 추가하기, node 제거하기

    목차 LinkedList 개념 LinkedList는 각 Node들이 다음 Node에 연결돼있는 리스트입니다. LinkedList에는 두 가지가 있습니다. 1. Singly Linked List: 다음 node에 한 방향으로 연결된 리스트입니다. 2. Doubly LinkedList: 다음 node와 연결된 동시에 다음 Node와 그전 Node와도 쌍방향으로 연결된 Node입니다. LinkedList에 특징으로는 Index값이 없습니다. 즉 자리 값이 없습니다. 이 뜻은 n번째 element를 접근하려 할 때 head자리부터 n번째 자리까지 반복하여 접근해야 합니다. LinkedList의 구성 LinkedList: LinkedList는 아래와 같이 데이터끼리 연결돼있는 리스트를 의미합니다. head: Li..