본문 바로가기

반응형

Kotlin

[프로그래머스] 프린터 #코틀린 #kotlin #큐 #queue #level2 https://programmers.co.kr/learn/courses/30/lessons/42587?language=kotlin 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 풀이 먼저, 인쇄가 이루어지는 절차는 다음과 같습니다. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 그렇지 않으면 J를 인쇄합니다. 문서가 모두 인쇄될 때까지 반복합니다. 이를 코틀린 코드로 표현하면 .. 더보기
[프로그래머스] 기능 개발 #코틀린 #kotlin #스택 #stack #level2 https://programmers.co.kr/learn/courses/30/lessons/42586?language=kotlin 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 풀이 다음의 규칙을 따라 코드를 작성해봅시다. `(100 - 현재 진행률) / 진행 속도`로 남은 기간을 계산합니다. (소수점이 생길 경우 올림) 첫 번째 남은 일을 스택에 집어넣습니다. 이때 (남은 기간, counter) 형식으로 집어넣습니다. 남은 기간을 순회하며 stack top과 비교하여 남은 기간이 더 작은 경우 co.. 더보기
[프로그래머스] 위장 #코틀린 #kotlin #hash #level2 https://programmers.co.kr/learn/courses/30/lessons/42578?language=kotlin 코딩테스트 연습 - 위장 programmers.co.kr 풀이 옷을 입는 방법의 수는 (종류 1 옷의 수) * (종류 2 옷의 수) * ...입니다. 해당 종류의 옷이 존재하지 않으면 고려하지 않습니다. 스파이는 하루에 최소 한 개의 의상은 입으므로, 아무 것도 안 입는 경우의 수를 하나 제거합니다. 안경만 입거나 하긴 한다는 거네... 변태. class Solution { fun solution(clothes: Array) = clothes.groupBy { (_, type) -> type }.values .fold(1) { acc, v -> acc * (v.size + 1.. 더보기
[프로그래머스] 베스트앨범 #코틀린 #kotlin #hash #level3 https://programmers.co.kr/learn/courses/30/lessons/42579?language=kotlin 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 풀이 문제에서 하라는대로 해봅시다. 먼저, 곡을 장르 별로 구분합니다. plays.withIndex().groupBy { genres[it.index] } zip() 메소드를 사용해도 좋겠지만, 이후에 노래의 고유 번호가 필요하므로, withIndex() 메소드를 사용하여 index를 사용해 plays와 genres를 매칭시킵니다... 더보기
Coroutine vs Thread, 코루틴, 쓰레드 차이 - 코틀린 동시성 코틀린에서 코루틴은 종종 경량 쓰레드라고 표현되며, 이러한 표현은 코루틴이 프로세서가 실행해야 하는 명령어 집합의 실행을 정의하며, 쓰레드와 비슷한 라이프사이클을 가진다는 점에서 어느 정도 알맞은 표현이라고 할 수 있습니다. 그러나 하나의 쓰레드에 두 개 이상의 코루틴이 존재할 수 있으며, 한 실행 시점에는 하나의 쓰레드에서 하나의 명령만 실행 가능합니다. 코틀린은 고정된 크기의 쓰레드 풀을 사용하고, 코루틴은 실행 시점의 상황에 따라 각 쓰레드에 배포됩니다. 이를 통해 1개의 코루틴을 생성하는 코드와 1000개의 코루틴을 생성하는 코드의 실행 시간 차이는 크게 나지 않습니다. import kotlinx.coroutines.* import kotlin.system.measureTimeMillis susp.. 더보기
Jsoup Coroutine Warning: Inappropriate blocking method call - 안드로이드 이슈 12 안녕하세요~ 오늘은 마주친 찝찝한 에러, Inappropriate blocking method call과 해결법에 대해 글을 써보려고 합니다. 먼저 이전에 사용하던 Volley 대신 Jsoup을 사용하게 된 이유부터 말씀드릴게요. 이번 프로젝트를 진행하면서, Volley의 불편함과 한계를 느꼈습니다. 파싱이 안되는 건 정규 표현식을 이용해 어찌저찌 해결했지만, 307 에러를 해결하지 못하더라고요. 때문에 크롤링과 파싱을 간편하게 Jsoup을 이용해 해결했는데요. 처음 작성한 코드는 다음과 같습니다. 이때 get() 부분에 warning이 발생합니다. warinig의 내용은 Inappropriate blocking method call인데요. 이를 이해하기 위해선 먼저 blocking과 non-blocki.. 더보기
Kotlin 이슈 6 fragment lifecycle 지난 이야기 2020/02/01 - [Android + Kotlin + Figma] - Kotlin 이슈 5 include 대신 정적 fragment, Unresolved reference. Kotlin 이슈 5 include 대신 정적 fragment, Unresolved reference. 지난 이야기 저번 시간에는 크롤링 코드를 작성했습니다. 모든 코드를 MainActivity.kt에 집어넣으려니 상당히 난잡해보이더라고요. 2020/01/22 - [Android + Kotlin + Figma] - doAsync, AsyncTask, Coroutines.. roomedia.tistory.com 지난 번에 크롤링 코드를 fragment를 상속받아 별도의 클래스로 구현하는 작업을 했었습니다. 오늘은 이 .. 더보기
Kotlin 이슈 5 include 대신 정적 fragment, Unresolved reference. 지난 이야기 저번 시간에는 크롤링 코드를 작성했습니다. 모든 코드를 MainActivity.kt에 집어넣으려니 상당히 난잡해보이더라고요. 2020/01/22 - [Android + Kotlin + Figma] - doAsync, AsyncTask, Coroutines 안드로이드 비동기 정답은?! doAsync, AsyncTask, Coroutines 안드로이드 비동기 정답은?! 네트워크 연결은 비동기로 처리하는 게 보편적이죠! 과연 안드로이드 + 코틀린에서는 어떤 방식을 많이 쓸까 알아봅시다. 종류 doAsync AsyncTask Coroutines Anko를 이용한 doAsync { ... } 제일 처음 발견한 방.. roomedia.tistory.com class MainActivity : AppCo.. 더보기

반응형