Kotlin

프로그래머스

두 수의 연산값 비교하기 코틀린(Kotlin)

정말 오랜만에 프로그래머스에 접속해보았다. 머리가 많이 굳었다는 게 실감되었다. 아날로그에 빠져 살아서 그랬나 싶기도 하다. 이제 문제풀러 가보자. 문제 일단, 두 수가 연산자를 거치면 문자열마냥 합쳐지는 것을 볼 수 있다. 따라서, 두 Int형 파라미터를 문자열로 붙였다. 만들어진 문자열을 다시 숫자로 바꾸어 a*b*2의 결과와 비교했다. 풀이 실행 결과

Android

Android RecyclerView ItemDecoration in Kotlin

내가 이 클래스를 사용하게 된 이유 내가 사용하던 RecyclerView에는 각 아이템 하단에 구분선(Divider)이 있다. 이전에는 해당 아이템을 구성하는 xml에 MaterialDivider를 배치했었다. 새로운 요구사항이 들어오면서 구조 변경의 필요성을 느끼게 되었다. 새로운 요구사항은 마지막 아이템은 구분선이 가로 전체를 차지하도록 변경하는 것이었다. 새로운 요구사항에 따른 시도 RecyclerView Adapter의 onBindViewHolder에서 마지막 아이템을 확인해서 AttributeSet을 다시 할당해주었다. 나름 그럴싸한 로직이라 생각했다.(내 기준) 그 결과, 알 수 없는 버그들이 밀려들어왔다. 처음 adapter를 할당했을 땐 마지막 아이템에만 해당 AttributSet이 적용되..

프로그래머스

문자열 겹쳐쓰기 코틀린(Kotlin)

오늘도 천천히 예열하는 느낌의 문제를 풀어보았다. (생각할 게 많아져서 머리를 많이 쓰기 싫었다 ㅋㅋㅋㅋ) 문제 문제를 보고 기존 문자열(my_string)에서 대체되기 시작하는 인덱스가 s이고 파라미터로 주어진 overwrite_string의 length 이후의 인덱스는 대체되지 않는다. 그래서 substring 함수를 사용해 기존 문자열의 대체되지 않는 부분을 구해주었고 대체되는 부분은 주어진 파라미터를 그대로 사용했다. 풀이 리턴될 answer 변수의 길이가 길어져 보기 힘들 수 있지만 이 문자열을 만드는 변수들은 위에서 말했던 3가지이다. overwrite_string에 의해 대체되지 않는 앞, 뒤 부분, 그리고 대체되는 부분. 끝이다.

프로그래머스

조건 문자열 코틀린(Kotlin)

오랜만에 안드로이드 글을 연재하다 공부 주제를 못잡고 가벼운 문제를 들고 왔다. 문제 가장 먼저 고민했던 것은 주어지는 두 개의 문자열을 어떻게 연산자로 변환할까? 였다. 하지만, 이 문제에선 총 4가지 케이스만 정의하면 되므로 when을 사용해 풀어보았다. 풀이 주어진 두 파라미터를 붙인 후 when에서 4가지 케이스를 분류했다. 리턴될 answer 변수에 if else 조건식을 사용해 곧바로 변수에 값을 대입했다. 물론 케이스가 더 많아지면 when의 케이스가 많아지고 중괄호 안쪽이 뚱뚱해질 것이다.

Android

종종 간과하는 문제 해결 에피소드(feat. Handler, Thread)

오늘은 회사에서 마주한 에러를 해결했던 에피소드를 적어보고자 한다. 사실, 되게 사소하지만 크리티컬한 문제였다. 가장 먼저 오늘 마주한 에러를 다시 재현하기 위해 내 노트북에서 샘플앱을 만들었다 ㅋㅋㅋㅋㅋ 마주한 에러 로그를 첨부하겠다. java.lang.RuntimeException: Can't create handler inside thread Thread[Timer-0,5,main] that has not called Looper.prepare() at android.os.Handler.(Handler.java:227) at android.os.Handler.(Handler.java:129) at android.app.Dialog.(Dialog.java:138) at android.app.Dialo..

프로그래머스

369게임 코틀린(Kotlin)

오늘 풀어본 문제는 최근 풀었던 7의 개수와 비슷한 느낌의 문제였다. 문제 주어지는 숫자를 문자열로 변경해 해당 문자열의 모든 인덱스에 3, 6, 9가 있는지 검사하면 되는 문제였다. 풀이 if문이 생각보다 조건이 길어져 세로로 줄바꿈을 해봤다. 실행 결과

프로그래머스

잘라서 배열로 저장하기 코틀린(Kotlin)

이번엔 최근 푼 문제 중 그나마 코드 길이가 길어졌던 문제같다. 문제 이 문제가 생각보다 귀찮았던 이유는 어느 인덱스에서 문자열을 잘라내 배열에 대입해줄까 였다. 게다가 모든 문자열이 딱 나누어 떨어지는 길이로 문자열을 주는 것이 아니기 때문에 그에 대한 처리도 필요했다. 풀이 나는 일단 문자열을 인덱스를 통해 잘라내기 위해 substring을 사용할 계획을 세웠다. 이 때, startIndex와 endIndex를 주어야 했는데 인덱스 값을 구하는게 문제의 전부였던 것 같다. 일단 문자열이 주어진 n으로 나누어 떨어지는 경우와 아닌 경우로 구분을 했다. 그래서 나누어 떨어지는 경우는 특별히 인덱스에 대한 고민이 필요없었다. 나누어 떨어지지 않는 경우에 인덱스 값을 조정하지 않으면 exception이 분명..

프로그래머스

A로 B만들기 코틀린(Kotlin)

이번에 풀어본 문제는 별 생각없이 골랐는데 오랜만에 정렬을 해보게 되었다. 문제 가장 먼저 눈에 들어온 조건은 주어지는 두 String의 길이가 같다는 것이었다. 그리고, 입출력 예를 보면 두 문자열의 순서에 대해 언급하는 부분이 있다. 이 부분에서 아이디어를 가져와 String을 Array로 잘라내서 정렬을 한 뒤 두 배열의 같은 인덱스 값을 비교해 풀었다. 풀이 반복문을 실행하다 만약 두 배열의 같은 인덱스 값이 다르면 바로 0을 리턴하고 조건문에 걸리지 않았다면 1을 리턴하도록 했다. 실행 결과

프로그래머스

7의 개수 코틀린(Kotlin)

이 문제는 저번보단 훨씬 익숙한 문제였다. 풀이 주어지는 값을 보니 Int형 Array였다. 그런데 7이 포함되는지 보려면 이 값이 String인 경우가 검사하기 더 편했다. 풀이 IntArray의 원소를 String으로 가져와 해당 String의 모든 인덱스에 7이 있는지 검사했다. 실행 결과

프로그래머스

인덱스 바꾸기 코틀린(Kotlin)

이번에는 내가 거의 써보지 않은 클래스를 사용해본 문제였다. (아마.. 아예 안 써봤을수도..?!) 문제 요즘 회사에서는 거의 자바를 쓰다보니 자연스레 자바의 메소드들이 떠올랐다. 그래서 처음엔 String을 배열처럼 접근해 해당 인덱스의 문자를 바꾸려 했지만 접근이 불가능했다. 역시 자바 스타일로는 해결할 수 없는 문제가 있었다. 결국 초심자의 마음으로 문자열 특정 인덱스 바꾸기 등등의 검색어를 통해 구글링을 한 결과, StringBuilder를 사용해보았다. 풀이 실행 결과 생각보다 실행 속도는 엄청 빨랐다!

BonusTrack02.dev
'Kotlin' 태그의 글 목록 (5 Page)