전체 글

    Material Design - Motion - 1

    0. 서론 앱 개발을 하면서 꾸준하게 관심을 갖고 있던 부분이 있다. 그것은 바로, 레이아웃을 내가 원하는대로 자유롭게 그리는 것과 레이아웃을 내가 원하는대로 자유롭게 움직이는 것이다. 2019/03/25 - [Android 공부/Android UI] - Android Motionlayout 삽질기 2018/10/24 - [Android 공부/Android UI] - 안드로이드 ConstraintLayout 사용법 2019/04/10 - [Android 공부/Android UI] - [안드로이드 UI 공부] Android Shared-Element Transitions - 1 2019/04/12 - [Android 공부/Android UI] - [안드로이드 UI 공부] Android Shared-Elem..

    [Dagger-1] Scabbard를 이용해서 Dagger2 시각화하기

    0. 서론 이번 업데이트에서는 Dagger2의 구조를 바꾸었다. 이전에는 컴포넌트의 계층이 없이 중구난방으로, 호출되었는가 하면, 업데이트를 하면서 컴포넌트의 계층을 주게 되었다. 그에 대한 결과물이 어떤 모습일까 궁금했고 Dagger2의 시각화 플러그인을 찾기 시작했다. Scabbard 라는 플러그인을 사용하게 되었다. https://arunkumar9t2.github.io/scabbard/ Scabbard Scabbard A tool to visualize and understand your Dagger 2 dependency graph. Your browser does not support the video tag. More advanced examples. Features Visualize ent..

    [TIL] - 코틀린 인터페이스 위임

    😀[TIL] - 코틀린 쿡북 169p 1. 대리자를 사용해서 합성 구현하기 - Before SmartPhone에 다양한 기능이 있을 때, phone, camera와 같이 세부적인 기능으로 나누고 싶을 때가 있다. 해당 책을 읽기 전에는 클래스를 생성하는 생성자에 객체를 아래와 같이 참조를 해서, 해당 인터페이스를 참조해서 메소드를 호출하는 방식으로 코드를 작성했다. 2. 대리자를 사용해서 합성 구현하기 - After 아래와 같이 'by'라는 키워드를 사용하면, Dialable 인터페이스가 갖고 있는 public 메소드를 SmartPhone 클래스에서 즉각적으로 dial()을 호출해서 사용하는 것을 볼 수 있다. 3. 디컴파일시 결과 확인하기 디컴파일시에는 아래와 같이 SmartPhone이 Dialable..

    June LeetCoding Challenge[Day2] - Delete Node in a Linked List

    Write a function to delete a node (except the tail) in a singly linked list, given only access to that node. Given linked list -- head = [4,5,1,9], which looks like following: 0. 알고리즘을 해결하기 위해서 생각한 방법 - 해당 문제는 현재 노드의 삭제 로직을 구현하는 문제입니다. - node.next = node.next.next; 를 통해서, 다음다음 노드를 가리키게 합니다. - node.val = node.next.val; 을 통해서, 현재 value를 없애주고, 다음 value를 덮어쓰게 되면서 현재 노드는 기존의 다다음노드를 가리키고, 현재 노드가 다음 노드..

    May LeetCoding Challenge[Day22] - Sort Characters By Frequency

    Given a string, sort it in decreasing order based on the frequency of characters. Input: "tree" Output: "eert" Explanation: 'e' appears twice while 'r' and 't' both appear once. So 'e' must appear before both 'r' and 't'. Therefore "eetr" is also a valid answer. 1. 알고리즘을 해결하기 위해서 생각한 방법 - 우선, 정말 단순하게 생각했다. - 앞에서부터 counting을 하고, counting한 문자에 대한 max를 찾아서 하나씩 retunr하는 것이다. - t:1, r:1, e:2와 같이 map을..

    June LeetCoding Challenge[Day1] - Invert Binary Tree

    Invert Binary Tree 0. 이번 달 목표 - 4월달부터 알고리즘을 시작했습니다. - 5월달에는 4월달만큼, 열심히 하지 않았습니다. - 열심히 하지 않았으니까, 앞으로도 열심히 하지 않을 것 같으니 6월달 목표는 하루 1문제 푸는 것만을 목표로 합니다. 1. 알고리즘을 해결하기 위해서 생각한 방법 - node.left와 node.right를 바꿈 - explore(node.left), explore(node.right)를 통해서 left가 head가 되고, right가 head가 되는 재귀함수를 만든다. 2. 알고리즘 작성 중, 어려운 점 & 깨달은 점 - 없음 3. 내가 작성한 알고리즘 /** * Definition for a binary tree node. * public class Tr..

    May LeetCoding Challenge[Day21] - Count Square Submatrices with All Ones

    Given a m * n matrix of ones and zeros, return how many square submatrices have all ones. Input: matrix = [ [0,1,1,1], [1,1,1,1], [0,1,1,1] ] Output: 15 Explanation: There are 10 squares of side 1. There are 4 squares of side 2. There is 1 square of side 3. Total number of squares = 10 + 4 + 1 = 15. 1. 알고리즘을 해결하기 위해서 생각한 방법 - 해당 문제는 0과 1로 이루어진 m * n 매트릭스가 주어질 때, 사각형이 몇 개인지 찾는 문제이다. - 길이가 1인 사각형부..

    May LeetCoding Challenge[Day20] - Kth Smallest Element in a BST

    Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Input: root = [3,1,4,null,2], k = 1 3 1 4 2 Output: 1 1. 알고리즘을 해결하기 위해서 생각한 방법 - BST가 주어질 때, k번째로 작은 숫자를 찾는 문제 - 잘 모르겠으니, 보고 풀어보자. https://www.youtube.com/watch?v=xBkzsYbLjAA 2. 알고리즘 작성 중, 어려운 점 & 깨달은 점 - 어느 정도, 재귀함수를 사용해서 풀으려고 했는데, 답을 찾고 어떻게 return 해야할 지, 카운트를 어떤 방식으로 누적해야할 지, 왼쪽과 오른쪽 노드로 이동할 때, 체크해..