코루틴 개념에 관한 글을 보면 다들 코루틴은 경량 스레드(light-weight threads)라고 소개하고 있다. 그런데 사실 코루틴을 처음 공부하는 사람이라면 이 문장은 잘 와닿지 않는다. 그냥 그렇구나.. 하고 넘어가긴 했지만 제대로 이해한 적은 없다. 개념적으로도 그렇지만 실제로 코루틴이 스레드보다 가벼운지도 궁금했다. 그래서 이번 글에서는 코루틴이 실제로 스레드보다 가볍다는 사실을 코드와 실행 결과로 기록해보려 한다. 코루틴 100만개 실행하기 fun main() = runBlocking { repeat(1_000_000) { launch { delay(5000) println(".") } } } 이 코드를 실행하면 정말 "."이 백만개 찍힌다. 그럼 이제 같은 코드를 스레드로 실행시켜보자. 스..
오늘 문제는 리스트를 자르는 부분이 필요해서 한 번 풀어보게 되었다. 문제 문제를 읽어보면 주의해야할 점이 하나 있었다. 바로 인덱스에 관련한 것인데 입출력 예시에서 보면 n값이 3일 때, num_list의 2번 인덱스에서부터 자르는 모습을 볼 수 있었다. 풀이 풀이 코드는 한 줄로 적었기 때문에 읽을 때 무리가 없을 것이라 생각한다. 주어진 배열을 리스트로 변경한 뒤, 주어진 인덱스에 맞춰 자르고 다시 배열로 형변환을 해주었다. 실행 결과
이번 문제는 제목에 충실한 문제다. 문제를 먼저 살펴보자. 문제 연산자에 대한 진리표를 보면 아랫 화살표는 OR 연산으로 보이고, 윗 화살표는 AND 연산으로 보인다. 풀이 결국 문제에서 주어진 네 개의 변수값을 원하는 식에 대입해주면 되는데 먼저 x1, x2의 결과가 true일 때 x3, x4의 연산값이 의미가 있고 false인 경우, 무조건 false로 리턴되어야 한다. 실행 결과