플러드 필 알고리즘 flood fill 혹은 seed fill이라고 불리는 알고리즘이다. 다차원 배열에서 어떤 칸과 연결된 영역을 찾는 알고리즘이며, 채우기 도구나 지뢰 찾기 게임에서 사용된다. 일반적으로 시작 칸을 중심으로 상하좌우로 연결 된 모든 칸을 방문하여 색을 칠하는 구조이다. 여러가지 구현 방법이 있지만, 큐나 스택의 자료구조를 사용하는 것이 일반적이다. 4방향과 8방향으로 구분되며, 알고리즘 문제에서는 주로 4방향 문제를 주어진다. (8 방향의 경우, 상하좌우 + 대각선을 탐색한다) 모든 정점에서 dfs나 bfs 탐색을 통해 연결요소가 몇개인지 파악할 수 있다. 구현 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머..
파이썬 라이브러리 순열과 조합의 경우 파이썬 내부의 라이브러리를 사용하면 직접 구현하는것 보다 훨씬 빠른 속도로 구현할 수 있다. 알고리즘 문제의 경우 빠른 속도를 요구하므로, 순열과 조합의 라이브러리를 꼭 숙지해야 한다. 순열과 조합은 매우 비슷해서 구분이 어렵고 헷갈리기 때문에 차이를 알고 구별할 수 있도록 학습한다. 파이썬에서는 itertools를 사용해서 순열과 조합을 구현할 수있다. from itertools import permutations https://docs.python.org/ko/3/library/itertools.html itertools — Functions creating iterators for efficient looping This module implements a nu..
Paging Library 구현 2번째 포스팅 입니다. https://jinudmjournal.tistory.com/131 [Android,Paging] Compose에서 Paging Library 구현하기 (1) Paging 라이브러리 Paging 라이브러리는 대규모 데이터 세트에서 페이징 된 데이터를 로드하여 표시하는 기능을 제공한다. Paging 라이브러리를 사용해서 네트워크 데이터 소스에서 페이징 된 데이 jinudmjournal.tistory.com Paging 구현 순서 이 포스팅에서 사용하는 Paging 구현 순서는 아래와 같다. 1. Data Model을 정의한다. - Entity, Dto, Domain Model, Mappers.. 2. RoomDB를 구현한다. 3. Retrofit 등 ..
Paging 라이브러리 Paging 라이브러리는 대규모 데이터 세트에서 페이징 된 데이터를 로드하여 표시하는 기능을 제공한다. Paging 라이브러리를 사용해서 네트워크 데이터 소스에서 페이징 된 데이터의 스트림을 설정하고, Compose View에 표시하는 방법을 학습했다. 우선 아래와 같이 Paging 관련 Library를 추가한다. // paging def paging_version = "3.1.1" implementation "androidx.paging:paging-runtime:$paging_version" implementation "androidx.paging:paging-compose:1.0.0-alpha18" 대부분의 페이징 라이브러리는 서버와 로컬 DB를 함께 사용하므로, Room과 ..
Room Database 스터디 기록 (1) https://jinudmjournal.tistory.com/129 [Android, Room] Room Database 스터디 기록 (1) https://developer.android.com/training/data-storage/room?hl=ko#components Room을 사용하여 로컬 데이터베이스에 데이터 저장 | Android 개발자 | Android Developers Room 라이브러리를 사용하여 더 쉽게 데이터를 유지하는 jinudmjournal.tistory.com Type Converter 커스텀한 데이터 객체를 저장해야 할 경우, Convertes 클래스를 만들어야 하는 경우가 있다. 예를 들어서 특정 Timestamp와 Date 객체..
https://developer.android.com/training/data-storage/room?hl=ko#components Room을 사용하여 로컬 데이터베이스에 데이터 저장 | Android 개발자 | Android Developers Room 라이브러리를 사용하여 더 쉽게 데이터를 유지하는 방법 알아보기 developer.android.com Room Room 지속성 라이브러리를 활용해서 SQLite를 통해 원활한 데이터베이스 엑세스 방법을 배운다. 큰 규모의 구조화 된 데이터를 처리하는 앱을 room을 활용해서 데이터를 로컬에 유지하는 방법으로 큰 이점을 얻을 수 있다. 가장 큰 이점은 기기가 네트워크에 엑세스할 수 없을 때도 사용자가 오프라인 상태로 계속 콘텐츠를 탐색할 수 있도록 관련 ..