최신 글
- 알고리즘 [백준] 1로만들기 https://www.acmicpc.net/problem/1463 fun main() = with(Scanner(System.`in`)) { val size = nextInt() val count = Array(size + 1) { 0 } count[0] = 0 count[1] = 1 if (size == 1) { return println(0) } count[2] = 1 if (size == 2) { return println(count[size]) } count[3] = 1 if (size == 3) { return println(count[size]) } for (i in 4 until cou..
- 알고리즘 [백준] 2xn 타일링 https://www.acmicpc.net/problem/11726 fun main() = with(Scanner(System.`in`)) { val size = nextInt() val count = Array(size + 1) { 0 } count[0] = 0 count[1] = 1 if(size == 1){ return println(count[size]) } count[2] = 2 for (i in 3 until count.size) { count[i] = (count[i - 2] + count[i - 1]) % 10007 } println(count[size])}
- 알고리즘 [백준] 2xn 타일링2 https://www.acmicpc.net/problem/11727 fun main() = with(Scanner(System.`in`)) { val size = nextInt() val count = Array(size + 1) { 0 } count[0] = 0 count[1] = 1 if(size == 1){ println(count[1]) return } count[2] = 3 for (i in 3 until count.size) { count[i] = (count[i - 2] * 2 + count[i - 1]) % 10007 ..
- 알고리즘 [백준] 차이를 최대로 https://www.acmicpc.net/problem/10819 fun main() = with(Scanner(System.`in`)) { val count = nextInt() val visited = Array(count) { false } val array = Array(count) { 0 } for (i in array.indices) { array[i] = nextInt() } var result = 0 fun dfs(depth: Int, total: Int , current : Int) { if (depth == count - 1) { result = max(result, total) re..
- 알고리즘 [백준] 1,2,3 더하기 https://www.acmicpc.net/problem/9095fun main() = with(Scanner(System.`in`)) { val number = nextInt() val array = Array(number) { 0 } for (i in array.indices) { array[i] = nextInt() } for (i in array) { var count = 0; fun dfs(total: Int) { if (total >= i) { if (total == i) { count++ } re..
IT
- 안드로이드 관련 [안드로이드] 안드로이드 커스텀 달력 예제 (Android Custom CalendarView Example) 안녕하세요 YTS 입니다. 오늘은 제가 만든 Custom Calendar View에 대해 적어보려합니다. 기본적으로 Android 에서 제공하는 달력은 한계점이 많고 각 날짜에 꾸밈을 할 수없기 때문에 불편한점이 많습니다. 저의 방법은 RecyclerView를 이용하여 만든 방법입니다! 참고로 해당 방법을 이용하기위해선 RecyclerView와 RecyclerView.Adapter에 대한 사전지식이 조금 필요합니다. 1. RecyclerView에 ViewType 설정 2. StaggeredGridLayoutManager에 대한 Span 설정 ( 이 부분은 쉽습니다. ) 사전 지식을 아는 개발자라면 쉽게 따라 하실 수 있도록 가이드하겠습니다. 1. Xml에 RecyclerView를 선언한다. 저는 헤더, ..
- 안드로이드 관련 [안드로이드] 안드로이드 지문인식 변경점 안녕하세요 남갯입니다 블로그를 처음 글쓰면서 의미있는 글을 써보겠다 다짐하면서 지문인식이란 구글샘플의 fingerprintCompat으로 타겟을 변경하고 제공하는 앱을 선보였는데요? 오랜만에 앱을 개발하면서 다시 예전에 만든 소스를 검토하면서 이용하다보니 api 28에서는 fingerprint가 deprecated되고 biomatric으로 통합되었다는 정보를 알게되어 글을 쓰게 되었습니다. - fingerPrint의 변경점 Android 9 only includes fingerprint integration for BiometricPrompt. However, integrated support for other biometric modalities are forthcoming. In Android 9 a..
- 안드로이드 관련 [안드로이드] AlarmManager With Notification Example (알람매니저를 이용하여 푸쉬생성 예제) 안녕하세요 YTS 입니다. 오늘은 알람매니저(AlarmManager)를 이용하여 푸쉬(Notification)를 생성하는 예저를 다루어볼까합니다. 추가적으로 JobScheduler를 이용하여 백그라운드에서도 반응하도록 예제를 제작하였습니다. 우선적으로 사전지식이 필요한 JobScheduler는 안드로이드 API LEVEL 21부터 등장하였고, Android에서는 기존 무분별한 백그라운드 서비스를 제한하기위하여 JobScheduler로 대체를 하고있습니다. 저는 JobScheduler를 보다 쉽게 사용하기위해서 FireBase Jobdispatcher를 이용하였습니다. 보다 자세한 정보는 https://github.com/firebase/firebase-jobdispatcher-android 에서 확인할 ..
- Java [안드로이드] 지문인식(fingerprint) 사용하기 (api<23도 가능) 안녕하세요 남갯입니다. 가입하고 처음 글을쓰게 되었는데요? 예전에 지문인식을 통한 어플리케이션을 개발했었는데, 구글에서 제공하는 지문인식 샘플을 이용하여 개발하였습니다. 구글에서 제공하는 지문인식 라이브러리 https://github.com/googlesamples/android-FingerprintDialog 저는 오늘 구글에서 샘플로 제공한 지문인식 라이브러리를 통한 개발방법을 소개해드리려 합니다. 먼져 위 사이트에 접속하여 위 빨간 버튼을 이용하여 다운하고 압축을 푼후 프로젝트를 열어보도록 하겠습니다. (file - open - gradle 모양의 프로젝트) 일단 열어서 실행을 실행을 해보면 맨 왼쪽의 화면이 나오게 됩니다. 구매(purchase)나 구매 무효화 (invaldated) 버튼을 클릭하..
- 안드로이드 관련 [안드로이드] 더보기 기능(TextView ReadMore) 안녕하세요. YTS 입니다. 오늘은 TextView의 더보기 기능에 대해 적어보려합니다. 더보기 기능은 페이스북, 인스타 등 기본적으로 SNS 에서 등장하는 기능인데요. 생각보다 마땅한 라이브러리가 없어 실제로 구현해봤습니다. public static void setReadMore(final TextView view, final String text, final int maxLine) { final Context context = view.getContext(); final String expanedText = " ... 더보기"; if (view.getTag() != null && view.getTag().equals(text)) { //Tag로 전값 의 text를 비교하여똑같으면 실행하지 않음. re..