목록분류 전체보기 (163)
Simple&Natural
[풀이과정] 정말 매우 고생한 문제였다. 이상하게 생각이 꼬여 계속 테스트 케이스에서 실패하는 바람에 거의 반나절을 넘게 푼 것 같다. 우선 key를 한칸씩 이동시키며 lock과 만날 수 있는 모든 경우의 수를 고려해주면 된다. 내 경우엔 lock의 왼쪽 하단부터 오른쪽 상단까지 이동시키며 자물쇠의 해제 여부를 판단하였다. 이것을 key를 회전시켜가며 4번 진행해주면 된다. 문제 자체는 딱히 고차원의 알고리즘이나 사고를 필요로 하지 않기 때문에 배열과 인덱스를 다루는 부분 그리고 조건에서 실수만 하지 않는다면 무난히 풀 수 있는 문제라고 본다. [사용언어] Kotlin [소스코드] 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 ..
푼지 좀 지난 문제다보니 자세히 어떻게 풀었는지 가물가물한데 문자열을 1개, 2개, 3개 단위로 늘려가며 압축해본 후 가장 짧은 값을 리턴하면 된다. 참고로 소스는 절대 깔끔한 편이 아니다. 더 좋은 다른 코드가 많으니 참고 바람. 사용언어: Kotlin 소스코드: fun solution(s: String): Int { var answer = 0 var answerStr = "" var count = 0 var tmpStr = "" var tmpCount = 0 while(count 1) { answerStr = answerStr.plus(tmpCount.toString() + tmpStr) if(i == s.length/count-1) { answerStr = answerStr.plus(s.substr..
- Retrofit에서 코루틴 사용을 위해서는 2.6.0버전 이상을 사용해야 한다. - Room과 Retrofit은 자체적으로 비동기 처리를 하기 때문에 Main Dispatcher에서 suspend function을 사용하더라도 main-safe하다. IO Dispatcher를 사용하는 것은 아니고 자체 Dispatcher를 사용함. Suspend function support requires Retrofit 2.6.0 or higher. Both Room and Retrofit make suspending functions main-safe. It's safe to call these suspend funs from Dispatchers.Main, even though they fetch from t..
과거에 채팅앱을 만들어보며 백그라운드 작업에 대해 상당히 많은 고민을 했었는데 안드로이드에서 처리할 수 있는 백그라운드 작업방법에 대해 잘 정리해 놓은 글을 발견해서 읽어보았다. 결론은 Jetpack에 새로 도입된 WorkManager를 소개하는 글이다. 채팅앱을 만들 당시 필요했던 작업은 24시간 소켓을 유지하여 각종 메시지 등을 처리하는 부분이었는데 사실 이 작업을 위해서는 백그라운드 서비스를 죽지않게 계속 돌려야 하는 문제점이 있었다. 하지만 이는 안드로이드 자체에서 별로 권장하지 않는 방법이었고 그렇다고 foreground service에 소켓을 유지시킬 수도 없는 노릇이었기에 이 방법은 포기했던 기억이 난다. 결국 소켓은 앱이 foreground 상태일 때만 유지시키고 background로 진입..