일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Version
- library
- Database
- sourcetree
- leetcode
- Room
- github
- Java8
- Algorithm
- ViewModel
- Jetpack
- Android
- FRAGMENT
- ReactiveProgramming
- rxjava
- Kotlin
- homebrew
- livedata
- Java
- programmers
- IntelliJ
- androidstudio
- git
- Today
- Total
목록Java (19)
Learn & Run
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 문제 5개의 대기실은 각 5 X 5 크기를 가집니다. 응시자들이 앉아있을 때 맨해튼 거리가..
https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr 문제 x에 대한 함수 f(x)를 x보다 크고 x와의 비트가 1, 2개 다른 수들 중에서 가장 작은수를 찾는 문제입니다. 해당 문제의 예시는 위의 사이트에서 확인 가능합니다. 접근 아이디어 1. x를 기준으로 오른쪽부터 0이 있는지를 먼저 판별한다. (x보다 큰 수들 모두 비트로 바꾸어 비교하면 효율성에서 통과하지 못한다) 2. 0이 있다면 그 자리가 마지막 인덱스인지 아닌지에 따라 분기처리한다. 3. 0이 없다면 모든 자리의 비트가 1인상태기 때문에 1을 더해준다. 4. 위의 아이디어는 코드에 주석처리 하여 확인 가능합니다. 조심..
https://programmers.co.kr/learn/courses/30/lessons/72412
https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 문제 N x M 배열이 입력값으로 주어진다. (1, 1) 지점에서 시작해서 (N, M) 지점에 도달했을 때의 최단 거리를 구하는 문제입니다. 단, (N, M) 지점에 도달하지 못했을 때는 -1을 반환해줍니다. 접근 아이디어 1. 최단거리를 구하는 문제에 필요한 BFS 알고리즘을 이용하였습니다. 2. 이전에 방..
https://programmers.co.kr/learn/courses/30/lessons/83201?language=kotlin 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 문제 i x j 배열이 입력값으로 들어올 때 scores[i][j]의 값은 i행이 j열을 평가한 점수를 나타내는 것이다. 이 때, 각자가 받은 점수에 대해서 본인이 평가한 점수가 받은 점수중 유일한 최고점, 최저점이라면, 평균 점수를 계산할 때 제외시키면 된다. 여기서 평균..
이전 포스팅에서 우리는 ListView에서 새로운 아이템이 화면에 보여질 때 ConvertView라는 파라미터를 이용하여 성능을 개선해 보았고, 이보다 더 개선된 ConvertView에 ViewHolder pattern을 적용시켜 보았다. 이번 포스팅에서는 조금은 다른 주제로 ViewHolder를 다뤄보고자 한다. BaseAdapter를 상속한 CustomAdapter 내부에서 ViewHolder Class를 정의하려고 한다. 여기서 문제에 봉착한다. ViewHolder Class는 Static일까 Non-static일까? 정답이 있는걸까? 아래에서 알아보도록 하자. 1. Lint에서 아주 잘 설명해준다 Reports any inner classes which may safely be made stati..
Android 공부를 시작하다보면 여러개의 아이템을 보여줄 수 있는 ListView를 접하게 된다. 좀 더 진도를 나아가보면 훨씬 더 중요하고 자주 쓰이는 RecyclerView를 접하게 되지만, 이번 포스팅에서는 ListView에 초점을 두어 작성해보려고 한다. 이전 포스팅에서 BaseAdapter를 상속한 Adapter의 getView() 메서드에서 인플레이션 과정이 일어나는 것을 설명했다. 다시 한 번 알아보도록 하고, 이것을 개선시킬 수 있는 방법인 ConvertView와 ViewHolder pattern에 대해서도 알아보도록 하자. 1. BaseAdapter의 getView() 메서드 다시 확인하기 2. ConvertView란 무엇인가 우선 converView를 알아보기전에 ListView에 먼..
이전 포스팅에서는 setContentView 메서드를 통해서 전체 화면이 인플레이션 과정을 거친 후 실제 화면으로 보여지게 된다는 것을 알수 있었다. 하지만 FrameLayout이나 Adapter를 사용할 때처럼 전체 화면 중에서 일부분만을 차지하는 화면 구성요소들을 XML레이아웃에서 로딩하여 보여주고 싶을 때 (부분화면일 경우) LayoutInflater의 inflate 메서드를 사용할 수 있다. 이번 포스팅에서 직접 다루어 봄으로써 부분 화면에 대한 사용 예시를 확인해 보도록 하자. 1. 부분 화면 띄우기 사용자로써 우리가 사용하는 대부분 앱들은 시작하면서 초기화된 전체 화면뿐만 아니라 다양한 화면들이 보여지고 사라진다는 것을 알고있다. 전체 화면이 보여진 이후에도 부분 화면들로 보이는 것들을 제어할..
안드로이드를 공부한지 꽤(내 기준) 되었음에도 불구하고, 인플레이션이란 것이 무엇인지 정확하게 설명할 수 없어 내 것으로 만들어보고자 한다. 도대체 안드로이드에서 인플레이션이란 무엇일까? 또한, 인플레이션이 어디에서 일어나고 있는 것일까? 라는 궁금증이 생기곤 한다. 흔히 보던 Activity내의 setContentView 메서드는 어떤 역할을 하는지, 그것이 인플레이션과 어떤 연관성이 있는지 알아보고자 합니다. 1. Inflation이란 무엇인가 아마 다들 경제학 용어로 많이 들어봤을 것이다. 안드로이드에서 Inflation이 의미하는 것은 팽창이라는 의미에 가깝다고 생각한다. 뒤에서 다시 한 번 언급하겠지만, Inflation이란 과정은 눈에보이지 않던(코드로만 작성되어 있는) XML 파일이 실제 메..