전체 글

    LeetCode[day3] - Maximum Subarray

    Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. Follow up: If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle. Example: Input: [-2,1,-3,4,-1,2,1,-5,4], Output: 6 Explanation: [4,-1,2,1] has the largest sum = 6. 1. 알고리즘을 해결하기 위해서 ..

    LeetCode[day2] - Happy Number

    Write an algorithm to determine if a number n is "happy". A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are ha..

    LeetCode[day1] - Single Number

    Given a non-empty array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? Example 1: Input: [2,2,1] Output: 1 Example 2: Input: [4,1,2,1,2] Output: 4 0. 내가 하고 싶은 것 Input은 주어진 숫자들에 대해서 쌍을 이뤄서 어떤 값들이 들어있다고 한다. 이 때, Stream 코드와 단순 코드로 해당 알고리즘을 구해보려고 한다. 1. 단순 ..

    RecyclerView-selection 느낀 점

    0. 서론 안녕하세요. '담다'앱을 개발하면서, recyclerview-selection을 사용했습니다. 시간표와 함께, TO-DO를 관리하기 위해서 만들면 유용할 것이라고 생각을 했습니다. 밑의 gif에서 보이는 것처럼 왼쪽에서는 날짜를 누르는 단일 selection을 사용했고, 오른쪽에서는 끝 낸, 일정을 관리하는멀티 selection을 사용했습니다. 결론을 말하면, selection 라이브러리는 해당 기능을 구현하기에는 좋은 라이브러리가 아니라는 것을 알게 되었습니다. 1. 장점 - 어느 정도 정형화 된 방법으로 Selection을 구현할 수 있다. - docs에서 제공하는 간단한 예제를 통해서 간단한 기능을 구현하는 것에 적합하다. - 아이템을 선택 -> 선택한 아이템을 일괄적으로 처리하는 단순한..

    안드로이드 - Jetpack Navigation 사용 [코드 리팩토링]

    0. 사용하는 이유 '담다' 앱은 2년 전에 레이아웃의 구조나, 액티비티의 계층 구조에 대해서 전무할 때부터 만들고 관리한 앱이다. 메인화면은 바텀 네비게이션 구조에, 5개의 주제로 앱의 서비스를 제공하고 있다. 그런데, 기존의 구조는 main.xml에서 visible과 gone을 통해서 2000여줄의 레이아웃을 관리하는 구조였고, 최근 들어서 느린 렌더링으로 앱이 사용자에게 서비스를 제공한다는 것을 알았고, 구조를 바꾸기 시작했다. 1. 생각한 구조 기존의 구조는 바텀 네비게이션을 클릭하면 코드에 의해서, 모든 레이아웃을 visible과 gone을 통해서 직접 관리를 해주었습니다. 해당 앱을 계속해서 유지보수하고, 만든 경험덕에 사실 큰 불편함은 느끼지 못 했지만, 느린 렌더링을 해결하기 위해서 전면으..

    RecyclerView 더 잘쓰기

    0. 서론 RecyclerView는 안드로이드 개발자라면, 질리도록 볼것이고, 계속해서 사용할 것이다. 그래서 대부분의 기능에서 RecyclerView를 요구하고 있고, 이를 커스텀해서 사용하는 경우가 많다. 그래서, 나는 RecyclerView만 다양하게 사용할 수 있다면, 안드로이드의 많은 기능을 구현할 수 있을 것이라고 단언한다. 1. 기본적인 구조 리사이클러뷰는 리스트뷰에서 출발을 한다. 우선, 리스트뷰와 리사이클러뷰를 비교하자면, 리사이클러뷰를 사용한다고 해서 리스트뷰보다 무조건적인 성능성의 이점을 갖는 것이 아니다. 리스트뷰는 동일한 레이아웃을 갖고 있는 뷰를 뿌려주기 위해서 사용하는 위젯이고, 리스트뷰가 많은 아이템을 갖게 되면 별도의 장치가 없기 때문에 메모리를 절약할 방안이 필요하기 때문..

    Android RecyclerView-selection tracker java.lang.IllegalArgumentException Error

    0. Summary 0-1. dependency androidx.recyclerview:recyclerview-selection:1.1.0-beta01 0-2. Logic val tracker = SelectionTracker.Builder( "ChoiceTimeTableTracker", rv_bottom_share_content, RecyclerViewIdKeyProvider(rv_bottom_share_content), ChoiceTimetableLookUp(rv_bottom_share_content), StorageStrategy.createLongStorage() ).withSelectionPredicate(SelectionPredicates.createSelectSingleAnything())...

    습관 만들기 4주차 - 기록하는 습관 만들기

    2019.12.09. 월. 아침에 눈이 일찍 떠져서, 8시 20분부터 10시까지 개인 시간을 가질 수 있었음. 오늘 중점적으로 한 것은 백그라운드 정책 톺아보기 블로그를 정리하고, 블로그와 PPT를 작성했음. 개발은 하나도 하지 못 했음. 이번주부터, 태블릿으로 업무를 처리하기 위해서 개발 55분, 정리 5분의 사이클을 가지려고 함. 그래서, 금요일이 됐을 때, 진행중인 사항을 머릿 속에 각인 시키고자 하는 것이 목표. 0. 기상 : 7시 기상 1. 정리 : 오늘 회사에서 있을 일, 미리 정리하기. 태블릿으로 업무처리 기록하기. 2. 블로그 : 백그라운드 정책 톺아보기 작성 ( 80프로) 3. 개발 : 0분