본문 바로가기
반응형

전체 글91

[Android] Kotlin + MVVM + AAC 로 Todo 앱 만들기 - 5 이번 포스팅은 RecyclerView에 이벤트 처리를 구현 할 것이다. 아이템을 클릭하면 Todo 아이템을 추가할 때 띄웠던 다이얼로그를 통해 Todo 아이템을 수정 할 것이다. 그리고 롱클릭을 통해 Todo 아이템을 삭제 해 보겠다. - Interface 구현 class TodoListAdapter: RecyclerView.Adapter() { ... interface OnTodoItemClickListener { fun onTodoItemClick(position: Int) fun onTodoItemLongClick(position: Int) } var listener: OnTodoItemClickListener? = null ... } 우선 어댑터의 상단에 위와 같은 코드를 작성한다. 아이템 클릭 .. 2020. 3. 8.
[프로그래머스] 코딩테스트 고득점 Kit > H-Index # 문제 # 문제 접근 H-Index라는 개념이 굉장히 헷갈리는 문제다. 우선 N은 논문의 수인 citations의 길이다. 즉, 예제에서는 5다. h를 1 부터 증가시켜 가며 천천히 생각 해 보자. 1. h = 1 인 경우, 5편 중 1번 이상 인용된 논문은 [1, 3, 5, 6]로 4개이다. 그리고 나머지 논문 [0]은 1번 이하 인용되었다. 2. h = 2 인 경우, 5편 중 2번 이상 인용된 논문은 [3, 5, 6] 로 3개이다. 그리고 나머지 논문 [0, 1] 은 2번 이하 인용되었다. 3. h = 3인 경우, 5편 중 3번 이상 인용된 논문은 [3, 5, 6] 로 3개이다. 그리고 나머니 논문 [0, 1]은 3번 이하 인용되었다. 위에서 3번 케이스의 경우, N편(5) 중 h번(3) 이상 인용.. 2020. 3. 7.
[프로그래머스] 코딩테스트 고득점 Kit > 가장 큰 수 # 문제 # 문제 접근 주어진 정수를 이어 붙여서 가장 큰 수를 만들어 내야 한다. 얼핏 생각하기엔 가장 큰 수부터 이어붙이면 되지 않을까 라는 생각이 들지만 그렇게 하면 안된다. 예를 들어, 6과 10으로 만들 수 있는 가장 큰 수는 106이 아닌 610 이기 때문이다. 두 수를 이어 붙일 때 두 수의 크기를 비교하는 것이 아닌, 두 수를 이어붙였을 때 큰 수가 되어야 큰 수로 판별해야 되는 것이다. 예를 들어 a, b 두 수가 있다면 ab 와 ba를 비교한다. 그리고 ba가 더 크다면 리스트를 b, a로 정렬한다. 입력 예제인 [6, 10, 2] 로 예를 들어 보겠다. 1. 6 vs 10 : 610 > 106 이므로 [6, 10, 2]로 정렬된다. 2. 10 vs 2 : 102 < 210 이므로 [6.. 2020. 3. 7.
[프로그래머스] 코딩테스트 고득점 Kit > K번째수 # 문제 # 문제 접근 문제 설명이 곧 풀이 방법이다. 문제만 잘 읽으면 되고, commads 에서 i, j, k를 획득하여 입력 array를 자르고 정렬하는 것이 주 포인트이다. # 문제 풀이 문제 설명에 문제를 푸는 방법이 전부 나와있다. i, j, k의 의미에 대해서 이해를 한다면 어렵지 않게 문제를 풀 수 있다. 1. 원본 입력 array를 보존해야 한다. 2. commands를 순회하면서 현재의 i, j, k를 구한다. 3. 원본 array를 i~j 까지 슬라이싱하고 정렬한다. 4. 위에서 얻은 리스트의 k번째 수를 결과 리스트에 담는다. # 코드 작성 def solution(array, commands): answer = [] for command in commands : // 현재 comma.. 2020. 3. 7.
[Android] Kotlin + MVVM + AAC 로 Todo 앱 만들기 - 4 이전 포스팅에서 예고했던 대로 데이터베이스에 Todo 아이템을 삽입할 때 별도의 쓰레드를 생성하여 하던 것을 RxKotlin 으로 변경하고 RecyclerView에 DiffUtil 을 적용 할 것이다. - Denpendency 추가 RxKotlin을 사용하기 위해선 앱 모듈 Gradle에 종속성을 추가 해 주어야 한다. https://github.com/ReactiveX/RxKotlin ReactiveX/RxKotlin RxJava bindings for Kotlin. Contribute to ReactiveX/RxKotlin development by creating an account on GitHub. github.com 위 사이트를 참고하여 종속성을 추가하자. Rx에 대해 이해가 필요하므로 htt.. 2020. 3. 1.
[Android] Kotlin + MVVM + AAC 로 Todo 앱 만들기 - 3 이전 포스팅에서 만든 코드를 리팩토링하여 MVVM 패턴을 구현하고 AAC를 적용 해 보자. - Dependency 이 앱에서는 ViewModel, LiveData, Room 를 사용할 것이다. 여기서 LiveDat와 Room은 앱 모듈의 dependencies에 추가 해 주어야 한다. https://developer.android.com/jetpack/androidx/releases/room https://developer.android.com/jetpack/androidx/releases/lifecycle 를 참고하여 아래와 같이 수정한다. Room | Android 개발자 | Android Developers Room 지속성 라이브러리는 SQLite를 완벽히 활용하면서 강력한 데이터베이스 액세스를 지.. 2020. 2. 29.