Dictionary는 Hash Table로 구성되어 있는데, 이는 상수 시간으로 접근이 가능하다. Counter의 연산. Counter는 Dictionary의 subclass이다. >>> c = Counter(a=3, b=1) >>> d = Counter(a=1, b=2) >>> c + d # add two counters together: c[x] + d[x] Counter({'a': 4, 'b': 3}) >>> c - d # subtract (keeping only positive counts) Counter({'a': 2}) >>> c & d # intersection: min(c[x], d[x]) Counter({'a': 1, 'b': 1}) >>> c | d # union: max(c[x], d..
RxSwift를 공부하면서 Closure가 다시 등장했다. 들어본 개념이고, 제대로 파보진 않았어서 겸사겸사 정리. Closure는 Swift의 함수형 프로그래밍 패러다임을 접할 때 꼭 알아야 할 개념 중 하나이다. Closure는 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 의미한다. Swift의 Closure는 C언어나 Objective-C의 blocks 이나 다른 프로그래밍 언어의 lambdas와 비슷하다. (함수와 비슷하다고 볼 수 있는데, 사실 함수는 Closure의 한 형태라고 볼 수 있다.) Closures are self-contained blocks of functionality that can be passed around and used in your code. Closur..
코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 해결 과정 처음에는 효율성 안따지고 곧대로 풀었다가 테스트 케이스 3개만 맞는 문제 발생. ㅋㅋ 역시 전체 다 따지는건 아니었다. Greedy에 포함되어 있는 문제이기도 했으니. 예전에 봤던 Greedy 여기서 어떻게 쓰인다는 건지 감이 안와서 풀이 참고했더니 처음엔 띠용했는데 이해해보니 이해 되는 원리 였다. 해결 과정은 다음과 같다. solution(number, k) number의 처음부터 for문을 돌면서 stack에 추가한다. 단, 추가하기 전에는 k가 0보다 커야하고 (숫자를 제외할 기회가 남아있어야 하고) stack이 비어있지 않고, stack의 맨 마지막원소가 현재 보고 있는 숫자보다 작으면 stack에서 제외해야 한다. (..
RxSwift, 여러 기술 스택에 많이 등장하는 키워드였는데 기본에 집중하기 위해(?) 아직 거들떠보지 않았던 녀석. 최근에 개발하던 중 RxSwift 키워드가 다시 등장했다. 도대체 뭐길래 이렇게 많이 나오는거야? 강의를 결제했고, 이 부분을 먼저 정리하려 한다. 비동기적으로 동작하는 Apple API들과 수시로 상태가 변하는 환경에서 보다 직관적이고 효율적인 코드를 작성할 수 있다. Binding retry Delegate (전체 로직을 다 따져볼 필요 없도록 직관적으로 ~ 변경 가능) Apple의 비동기 API들 KVO Notification Center The delegate pattern Grand Central Dispatch (GCD) Closures 개발자가 추적하기 거의 불가능함. -> ..