Language

    그리디 - 당장 좋은 것만 선택하는 그리디

    거스름돈 문제 문제 N원을 여러 화폐단위로 거슬러주어라. 단, 가장 큰 화폐 단위부터 거슬러줘야할 때 해당 화폐로 거슬러주어야할 동전의 갯수는? 입력예시 : n=1260, 화폐단위들{500, 100, 50, 10} 출력예시 : 6 더보기 해결방법 큰 화폐 단위는 항상 작은 단위의 배수이므로 가장 큰 화폐 단위부터 가장 작은 화폐 단위까지 거슬러주는 작업만 하면된다. 거스름돈을 해당 화폐으로 나누면 몫 -> 해당 화폐로 거슬러줄 수 있는 돈, 나머지 -> 더 작은 단위로 거슬러주어야할 나머지 돈 static int n = 1260; static int cnt = 0; static int[] coinTypes = {500, 100, 50, 10}; public static void main(String[] ..

    DFS/BFS - 탐색 알고리즘

    스택 구현 예제 public static void main(String[] args) { Stack s = new Stack(); // 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제() s.push(5); s.push(2); s.push(3); s.push(7); s.pop(); s.push(1); s.push(4); s.pop(); // 스택의 최상단 원소부터 출력 while (!s.empty()) { System.out.println(s.peek()); s.pop(); } } 큐 구현 예제 public static void main(String[] args) { Queue q = new LinkedList(); // 삽입(5) - 삽입(2) -..

    [코루틴 # 1 생성과 소멸하기] - lunch( ), sync( ), Job

    코루틴은 자바의 콜백 대신 비동기 작업을 좀 더 우아하고 효율적으로 처리하는 방법입니다. Kotlin 코루틴을 사용하면 콜백 기반 코드를, 좀 더 읽기 쉬운 순차적으로 작성된 코드로 변환할 수 있습니다. Suspend 함수를 사용하여 비동기작업을 순차적으로 코드를 작성할 수 있도록 합니다. 코루틴을 사용하면 프로세스/스레드의 작업을 중단(stopped)하고 다른 루틴을 사용하기위해 문맥교환을 하는 대신, 일시중단(suspended)해서 이런 비용을 줄일 수 있게 된다. 다시말해 일시중단은 사용자가 제어할 수 있기 때문에, 운영체제가 스케줄링에 개입하는 과정이 필요없게 됩니다. 뿐만 아니라 콜백과 달리 코루틴은 예외처리를 좀 더 안전하게 사용할 수 있습니다. 그리고 가장 큰 장점은 유지보수와 유연성을 갖고..

    Processor와 Subject

    Processor와 Subject란? Cold Publisher와 Hot Publisher 리뷰 PublishSubject AsyncSubject BehaviorSubject ReplaySubject

    RxJava로 기존 Android code 개선하기

    nittaku.tistory.com/179 Rxandroid를 쓰는 이유 1. AsyncTask와 비교해서 설계적인 면 + 코드 수 + UI로직 처리 + 연쇄 API호출이 가장 큰 장점이다. Retrofit과 Retrolambda라는 시너지좋은 라이브러리를 함께 사용한다고 가정했을 때, AsyncTask에서는 doInBac nittaku.tistory.com 1. thread 동기화처리 Async Task 2. UI 다루기 클릭의 추상화 observable 병합 Observable 컴바인 3. Eventbus Subject 객체는 Observable과 Observer 모두 가능하므로, 데이터를 받고 전달해주는 Eventbus 가 될 수 있다. 4. 데이터 검색 Realm에 저장된 데이터를 가져올때, .a..

    [리액티브 연산자 Operator 2] 에러, 유틸, 조건, 통지

    5. 에러(ERROR) 처리 연산자 onErrorReturn 연산자 onErrorResumeNext 연산자 retry 연산자 6. UTILITY (유틸리티) 연산자 delay 연산자 delaySubscription 연산자 timeOut 연산자 timeInterval 연산자 materialize / dematerialize 7. 조건과 불린 연산자 all 연산자 amb 연산자 contains 연산자 defaultIfEmpty 연산자 sequenceEqual 연산자 8. 집계(MATHEMATICAL) 연산자 count 연산자 reduce 연산자 참고