kotlin
-
[LeetCode]Reverse IntegerAlgo 2019. 6. 22. 15:26
문제 문자 스트링을 정수로 변환하는 atoi(), itoa()와 관련된 문제이다. Solution 나의 코드는 아래와 같다. Result atoi()란 문자 스트링을 정수 값으로 변환하는 것을 의미한다. c에서는 stl로 stdlib.h 파일에 선언되어있다고 한다. 그래서 해당 문제의 discussion을 가보면 뭐 여타 다른 이유로 있겠지만 압도적으로 c로 푼 코드가 퍼포먼스가 좋다. Kotlin으로 해당 문제를 풀어본 필자는 String.reversed()가 가장 먼저 떠올랐다. 그렇지만 NumberFormatException이 발생해서 애좀 썼다... 여차저차 해서 풀었는데 발생했던 오류 중 하나는 ( - )이다. x를 바로 String.reverse()했더니 -까지 뒤에 붙어 버려서 초반에 x의 ..
-
[Kotlin] Null SafetyKotlin 2019. 5. 31. 01:12
Kotlin의 매력 중 하나인 Null Safety에 대하여 정리해보자. ■ ? Null을 값을 가능케 하는 Null Safety이다. fun testNull(){ val nullableString : String? = null //널 허용 val notNullabeString : String = null //널 허용불가. } nullableString 변수는 String Type뒤에? 가 붙으면서 null 이 가능하다. nonNullableString 변수는 기존 자바 String이 같이 null이 불가능하다. ■ ?: Null 값을 대신할 수 있는 Elvis Operator 이다. fun main(){ val hi = "hi" val num = 12345 val elivis_String : Strin..
-
[Android] 안드로이드 커스텀 버튼 만들기.Android 2019. 5. 23. 01:46
안드로이드에서 기본적으로 제공하는 버튼은 이쁘지 않다. 화면에 맞게 다양한 버튼을 만들어 주고 싶다면 버튼을 커스텀할 줄 알아야 한다. 오늘은 그 방법에 대하여 정리해보겠다. 안드로이드 XML에서 버튼을 추가해주면 기본적으로 이러한 모양이다. 나의 Needs! " 나는 동그랗고 바깥 테두리가 완만한 버튼을 원한다. " 그럴 때는 이렇게 하면 된다. Step1 drawable > 우클릭 > Drawable Rsource file 추가. 고대로 넣고 내가 알아보기 쉬운 이름을 짓는다. 여기서 주의해야 할 점은 xml파일의 underbar ( _ ) 말고 그냥 bar(-)가 들어가면 해당 파일을 찾지 못하니 주의해야 한다. Step2 아래와 xml 코드를 넣어준다. > TMI stroke 겉 테두리라고 생각하..
-
[LeetCode] Climbing StairsAlgo 2019. 5. 6. 23:00
문제 알고리즘 유형중 DP(Dynamic Programming)에 관한 문제이다. DP 관련한 문제를 접근하기 위해서는 메모제이션에 대한 이해가 필요하다. TOP-DOWN 위에서 아래로 접근하는 방식 재귀를 많이 이용한다. Bottom-Up 밑에서 위로 접근하는 방식 for문같은 반복문을 많이 이용. 메모제이션에 관한 이해나 부연 설명들은 아래와 같은 블로그를 참고하면 더욱더 이해하기 쉬울 것이다. * 김로그 * all about coding 피보나치수열처럼 점화식을 이용하면 구할 수 있는 문제였다. class Solution { fun climbStairs(n: Int): Int { val array = IntArray(n+1).let { for (i in 1..n) { when (i) { 1 -> i..
-
[BOJ-2566]백준 알고리즘 2566 [Kotlin][Java]Algo 2019. 4. 28. 20:36
Kotlin에 조금 더 익숙해지고자 BOJ를 코틀린으로 풀고 있다. 문제 링크 : https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 문제 [Java] import java.util.Scanner; public class Baek_2566_java { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int max = 0; int[][] array = new int[9][9]; ..
-
[LeetCode] Two sumAlgo 2019. 3. 10. 17:47
Question난이도 : 쉬움 문제 : 주어진 정수 배열을 이용하여 특정 target을 더해서 만들 수 있는 2개의 인덱스를 반환해라. 정확히 한개의 해결방법이 있고 동일한 element를 사용할수 없다. My solution Another solution Description시간 복잡도 O(N^2) 모든 경우를 탐색하는 Brute Force 는 방법을 사용하였다.Logic 하나의 솔루션이라는 뜻은 2개의 operator가 짝을 이루었다는 뜻이니까 arr 라는 변수로 return할 output을 정의하고 arr의 크기가 2보다 작은 경우로 조건을 명시하고 target을 만들수있는 경우가 inputArray[idx]보다 작은 경우, 큰 경우, 같은 경우 3가지로 분기처리를 하였다. 작성하고 나니 동일 한 ..
-
[BOJ 2455] 백준 알고리즘 2455Algo 2019. 3. 3. 18:42
백준 알고리즘 2455번을 코틀린으로 풀었습니다. 링크 : 백준 2455 #Comment저는 문제를 잘못 해석해서 정거장이 4개가 아니라 첫번째 0이 시작역, 두번째 0이 종착역으로 check 라는 변수로 0이 2번 나올 시, 시작역부터 종착역까지 다 완주 하였음으로 while 문을 탈출하게 구현하였습니다. #Umm코틀린으로 푼 다른 코드 중 시간복잡도가 적게 걸린 코드를 보면 inline withBufferStream으로 문제를 접근하여 저보다 시간복잡도가 우수합니다. 해당 관련 포스팅을 하여 자바와 다른 코틀린의 장점을 표현하여 코드를 작성하는 습관을 길러야겠습니다.
-
RecyclerViewAndroid 2018. 12. 15. 21:21
/** 본 포스팅은 Udemy - Kotlin Android 부터 Firebase 서버 그리고 훌륭한 Chatbot 만들기를 스스로 정리하고자 작성한 글입니다. /* * Recycler View? your app needs to display a scrolling list of elements based on large data sets (or data that frequently changes), you should use RecyclerView as described on this page.developer.android에 RecylerView를 찾으면 위와 같은 말을 찾을 수 있습니다. scrolling 되고 큰 데이터에 기준되거나 변화 될때, 너는 RecylerView를 사용해야한다. 앱을 이용하..