RxSwift, 여러 기술 스택에 많이 등장하는 키워드였는데 기본에 집중하기 위해(?) 아직 거들떠보지 않았던 녀석. 최근에 개발하던 중 RxSwift 키워드가 다시 등장했다. 도대체 뭐길래 이렇게 많이 나오는거야? 강의를 결제했고, 이 부분을 먼저 정리하려 한다. 비동기적으로 동작하는 Apple API들과 수시로 상태가 변하는 환경에서 보다 직관적이고 효율적인 코드를 작성할 수 있다. Binding retry Delegate (전체 로직을 다 따져볼 필요 없도록 직관적으로 ~ 변경 가능) Apple의 비동기 API들 KVO Notification Center The delegate pattern Grand Central Dispatch (GCD) Closures 개발자가 추적하기 거의 불가능함. -> ..
코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 해결 과정 소요 시간 1시간 이상 은근 까다로웠던 문제..? 다시 살펴보기 & 다른 풀이 살펴보기 + 22.02.21 까다로운 문제가 아님. 체육복 개수 넣는 배열 만들자 & 앞에서 부터 풀면 Greedy 하다. 이 두 개만 명확했으면 까다롭지 않음. Greedy의 대표적인 문제. 이 문제를 보고 왼쪽에서 오른쪽으로(혹은 그 반대로) 순차 대로 탐색해도 된다는 것을 인지했어야 Greedy로 풀 수 있는 문제였음. 나의 풀이 def solution(n, lost, ..
m, len(info) -> n이라고 할 때, O(mn)이 나온다. 즉, 매 query를 살필 때 마다 매 info를 살피는건 비효율적인 구조라는 것. 아니 근데 풀이 아이디어.. 기발하네. 애초에 다음과 같은 구조를 생각해내는게 포인트인듯... 다음과 같은 구조를 한 번 만들어두고 매 query를 볼 때마다 이미 만들어진 다음 구조에서 개수 세면 됨. 더보기 위 코드에서 dic을 출력하면 다음과 같다. (예시임) { "javabackendjuniorpizza":[ 150 ], "javabackendjunior-":[ 80, 150 ], "javabackend-pizza":[ 150 ], "javabackend--":[ 80, 150 ], "java-juniorpizza":[ 150 ], "java-ju..
코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 해결 과정 다중 집합이라는 개념을 녹인 문제. 다음 두 글에 정리가 잘 되어 있다. 지난 번에 문자열 슬라이싱의 경우 index를 넘어도 되는 것을 알고 있었기에 적용해서 풀고, 문자열 함수를 여러 개 리마인드 할 수 있었던 문제였다. .isalpha() .lower() [개념정리] 파이썬 다중 집합의 교집합, 합집합 [python] 합집합, 교집합, 차집합 나의 풀이 import math def solution(str1, str2): an..
코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 해결 과정 첫 번째 시도는 문제 자체를 이해하지 못하고 풀었다. 두 번째 시도는 테스트케이스 13, 14, 15 번에서 시간초과가 떴다. orders에 대해서 무작정 모든 경우의 수를 구해서 생긴 문제인데, 이 글과 이 글을 참고해서 힌트를 얻었다. 모든 경우의 수를 구할 필요가 없지. 만약 num이 7이라면 orders 중에 7 이상인 대상에 대해서, 각각 가능한 조합을 만들고 더하는 형태로 구현했더니 해결 완료. 나의 풀이 from itertools impor..