Skip to content

Instantly share code, notes, and snippets.

@shoark7
shoark7 / algorithm-sites.md
Last active August 18, 2025 17:20
개인적으로 사용했던 알고리즘 사이트들을 추천드립니다.

알고리즘이라고 많이 들어보셨을 겁니다. 알고리즘은 교과서식으로 정의해보면 '문제를 해결하는 일련의 절차'라고 할 수 있는데요. 컴퓨터로 어떤 문제를 해결해야 할 때, 코딩으로 어떻게 해결할지에 대한 구체적인 방법을 이야기합니다.

예를 들어, 숫자 배열을 정렬하는 문제가 있다고 합시다. 인간이 배열을 대충 보고 정렬하기는 쉽지만 원소의 개수가 수백만개에 달하는 배열에서 컴퓨터에게 일을 시켜서 컴퓨터가 정렬하게 하는 것은 쉽지 않습니다. 실제로 정렬은 알고리즘에서 매우 유명하고 기초적인 분야로 정렬을 하는 방법, 즉 알고리즘이 지금까지 알려진 것만 해도 수십가지가 됩니다.

알고리즘을 공부하는 것은 꽤 도움이 되는데요. 일단 코딩을 시작하시는 분들 입장에서는 코딩을 하게 되서 코딩과 문법에 익숙해지는 장점이 있고, 또 개발자적 사고를 하는 데 알고리즘 문제를 푸는 것이 도움이 됩니다. 어떤 개발 회사들은 알고리즘 능력을 테스트하기 때문에 취업을 목표로 공부하신다면 손해는 보지 않습니다.

저는 알고리즘을 좋아해서 조금씩 풀어왔는데요. 알고리즘을 풀 수 있도록 문제를 내주는 사이트들이 정말 많습니다. 오늘은 그중에서 몇 가지만 소개해드리겠습니다. 사이트는 정말 많은데요, 그중에서 제가 최소 몇 번이라도 써본 사이트들만 소개하겠습니다. 더 좋은 사이트들이 있으면 소개해주시면 추가할 수 있을 것 같습니다.


@filipkowicz
filipkowicz / HeaderItemDecoration.kt
Last active July 30, 2025 15:48
Item Decorator for sticky headers in Kotlin
package com.filipkowicz.headeritemdecorator
/*
solution based on - based on Sevastyan answer on StackOverflow
changes:
- take to account views offsets
- transformed to Kotlin
- now works on viewHolders
@y-polek
y-polek / LiveDataExt.kt
Last active November 25, 2021 01:22
'map' and 'combineLatest' transformations for LiveData
import android.arch.lifecycle.LiveData
import android.arch.lifecycle.MediatorLiveData
import android.arch.lifecycle.MutableLiveData
fun <X, Y> LiveData<X>.map(func: (X?) -> Y?): MutableLiveData<Y?> {
return MediatorLiveData<Y>().apply {
addSource(this@map) { x -> value = func(x) }
}
}
@takahirom
takahirom / EventBus.kt
Last active June 8, 2024 14:09
EventBus by Kotlin coroutine
import kotlinx.coroutines.experimental.channels.BroadcastChannel
import kotlinx.coroutines.experimental.channels.ConflatedBroadcastChannel
import kotlinx.coroutines.experimental.channels.ReceiveChannel
import kotlinx.coroutines.experimental.channels.filter
import kotlinx.coroutines.experimental.channels.map
import kotlinx.coroutines.experimental.launch
import javax.inject.Inject
import javax.inject.Singleton
@Pluu
Pluu / RxJava-Part3.md
Last active February 18, 2025 10:00
RxJava 3장 ~ 연산자와 변환

RxJava 3장 ~ 연산자와 변환

핵심 연산자: 매핑과 필터링

map

Operator Wiki : Link

/*
* Copyright (C) 2016 Jeff Gilfelt.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
@NikolaDespotoski
NikolaDespotoski / BottomNavigationBehavior.java
Last active December 19, 2022 06:14
Bottom Navigation behavior
/*
* BottomNavigationLayout library for Android
* Copyright (c) 2016. Nikola Despotoski (http://github.com/NikolaDespotoski).
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
Unless specified otherwise, all of the below tinting applies to both Lollipop and pre-Lollipop using AppCompat v21.
To use the support version of these attributes, remove the android namespace.
For instance, "android:colorControlNormal" becomes "colorControlNormal".
These attributes will be propagated to their corresponding attributes within the android namespace
for devices running Lollipop. Any exceptions to this will be noted by including the "android:" prefix.
All Clickable Views:
-----------
@lecho
lecho / shadow.xml
Created September 7, 2013 07:01
Android shadow drawable xml.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Drop Shadow Stack -->
<item>
<shape>
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"