분류 전체보기

프로그래머스

왼쪽 오른쪽 코틀린(Kotlin)

오늘 풀어본 문제는 코틀린에서 forEach를 사용해보고,여기서 continue와 break 역할을 어떻게 대체하면 좋을지 다시 복습해보는 과정이었다. 문제문제는 l과 r이 나오는 시점에서 배열을 좌우로 자르면 되는 문제이다. 다만 위에서 잠시 언급했듯 break와 continue를 사용해야하는 이유가 문제에 있다. 배열을 좌우로 자르는 시점에서는 break가,그렇지 않은 경우에는 continue가 필요하다. 풀이 먼저 forEachIndexed를 사용해 반복문을 대체 해주었고,이 때 기존 Java처럼 continue, break는 사용할 수 없기에run scope 함수로 감싸주었다. 그리고 나서, continue가 필요한 지점은 forEachIndexed를 리턴해주었고break가 필요한 지점은 run ..

Android

Android Fold Device 대응하기

기능이 필요해진 배경이번에 새로운 앱을 준비하며 폴드(플립이 아닌) 디바이스인지 확인해야만 하는 상황이 생겼다. 그렇게 폴드 디바이스인 경우, layout constraints를 조정해 다른 UI를 구성해주기 위함이었다. 다만, 폴드 디바이스를 어떻게 체크할 것인가에 대해 찾아보던 중"2가지 조건을 충족하면 폴드 디바이스다!" 라는 결론을 낼 수 있었다. 1번째 조건WindowInfoTracker를 사용해 폴더블 디바이스인지 확인하는 것이다. developer 사이트 문서에서 확인해보면WindowInfoTracker에서 FoldingFeature가 있는 경우, 폴더블 디바이스라는 것을 알 수 있다. https://developer.android.com/develop/ui/compose/layouts/ad..

프로그래머스

[PCCE 기출문제] 7번 / 버스 자바(Java)

최근 풀었던 기출문제 시리즈를 이어서 풀어보다저번에 풀었던 7번 문제와 비슷한 유형이라 다시 한 번 글을 올리게 되었다. 저번 문제도 비슷하게 기존에 정의된 함수가 있고정답을 리턴하는 함수에서 어떻게 호출할 지를 정했었다. 문제주어진 배열에서 On이면 승차 Off이면 하차임을 의미한다. 그리고 곧장 풀이로 넘어가서 설명을 같이해보겠다. 풀이먼저 num_passenger 변수에는 승하차로 인해 총 몇 명이 타고 있는지를 저장해야 한다. 여기서 사용할 수 있는 함수에는 func1,2,3,4가 있다. 여기서 3번은 하차하는 인원을 세는 함수, 4번은 승차하는 인원을 세는 함수이다. 그렇게 계산이 끝난 num_passenger 변수와기존 파라미터로 주어진 seat 수를 사용해 남은 좌석 수를 리턴하게 된다. 이..

프로그래머스

바탕화면 정리 코틀린(Kotlin)

오늘은 AI가 추천해준 문제를 풀어봤다.이리저리 생각하다보니 문제의 요구사항을 파악하는 것이 가장 오래 걸렸다.문제문제의 답을 한 줄로 요약해보면 파일이 있는 가장 작은 x, y값과 가장 큰 x, y값을 구하는 것이다.그렇게 숫자 네 개를 가진 정수형 배열을 리턴하면 끝이다.풀이가장 간단한 방법으로 생각한 것은 최솟값과 최댓값을 구하는 것이었다.내가 가진 값보다 더 작은 값이 있다면 내 값을 갱신하고내가 가진 값보다 더 큰 값이 있다면 내 값을 갱신하는 것이다.나는 if문을 통해 일일이 직접 비교해서 풀어보았다. 실행 결과다음에도 재밌는 문제를 풀어보기를 기대해야겠다.

프로그래머스

[PCCE 기출문제] 3번 / 수 나누기 자바(Java)

오랜만에 프로그래머스를 들어가보니 PCCE 기출문제가 추가되어 있었다. 그래서 순서대로 풀다 보니 블로그에 적어두어도 재밌을 것 같은 문제를 발견했다. 문제문제는 주어진 수를 2자리씩 끊어서 합치면 되는 문제였는데, 이 문제는 이미 작성된 코드 중 1줄만 수정하면 되는 문제이다. 풀이내가 변경한 것은 for문의 반복 횟수이다. 주어진 코드에서는 i 그런데 난 왜 굳이 5를 썼을까? 문제에서 주어지는 입력값의 제한사항이 2000000000까지이므로우리가 자릿수를 판별하기 위해 반복문 안에서 number /= 100을 통해 확인하는 최대 횟수는 5번이다. 따라서 i불필요한 반복문 실행을 할 필요는 없으니 문제에서 주어진 제한사항에 맞춰 풀었다고 보면 되겠다. 실행 결과

주저리주저리/팝업스토어

잠실 롯데월드몰 짱구 팝업스토어

저번에 올렸던 신카이 마코토 팝업스토어와 같은 날 다녀온 짱구 팝업스토어 얘기를 해보려고 한다. 도착 후 대기 등록여의나루역에서 잠실역으로 이동한 후 바로 대기 등록을 하러 갔다.대기 등록을 위한 줄은 그렇게 길지 않았는데 정말 무서운 이야기가 여기서 시작된다. 6시쯤 도착해서 다들 저녁도 먹으러 갈 거라고 생각했는데 정말 태평한 생각이었다. 대기 등록을 했는데 무려 대기가 4자리수..?한 팀 당 1분이라고 쳐도 오늘안에 못 들어간다는 계산이 되었다. 그래서 대충 포기하고 카페도 가고 밥도 먹으러 가자는 얘기가 나왔다. 어쩌다보니 카페 먼저생각보다 1층에 자리가 없어서 2층으로 자리를 잡았는데 뷰가 괜찮았다. 물론 2층도 자리가 많이 없었다. 제일 놀랐던 건 테이블 퀄리티가 미쳤다.. 촉감이 너무 좋았다..

Android

Android Material Theme Elevation 해제하기

Material theme을 사용하면서 왜 Elevation 설정을 해제하려고 할까앱에서 원하는 색상을 적용하기 어렵다. Material theme만 적용하게 되면 상관이 없겠지만,iOS나 다른 플랫폼과 색상을 맞추기 위해서는 Material theme만을 사용할 수가 없다. 왜 하필 elevation이냐... 그건 바로 elevation을 통해 shadow를 적용했는데Material theme 설정 때문에 내가 지정한 View의 backgroundTint를 적용할 수 없었다. 예를 들면?MaterialCardView가 있다. Appcompat의 CardView를 상속받아 만들어졌는데cardElevation을 0 초과로 설정하는 순간 내 기본 테마 색상에서더 진한 채도를 가진 색상으로 background..

Language/Kotlin

CoroutineScope와 CoroutineContext 되짚어보기

CoroutineScope(이하 Scope)는 CoroutineContext(이하 Context)라는 하나의 프로퍼티를 가지고 있다. 더불어 모든 Coroutine은 특정 Scope에서 실행된다. 그리고 여러 개의 Coroutine은 같은 Scope에서 실행될 수 있다. 특정 Coroutine과 그 자식 Coroutine을같은 Scope에서 실행하게 되면 Job 객체들이 부모-자식 계층을 구성하게 된다. 이렇게 형성된 부모-자식 계층은 구조적 동시성에서 중요한 부분이다. 같은 Scope에서 실행된 Coroutine은기본적으로 해당 Scope의 Context를 상속받는다. 하지만 각 Coroutine은 다른 Context로 실행될 수 있고,이것도 계층 구조를 따라 특정 Coroutine이 A라는 Conte..

Language/Kotlin

withContext로 스레드 전환하기

저번 글에서 예고했던 대로 메인 스레드에서 했던 무거운 작업을 이제 다른 스레드에서 작업시켜보자.(이전 글 확인하기) 이전 동작 이해하기아까 첨부한 링크에서의 이전 글을 보면우리는 viewModelScope를 사용해 CPU 연산이 무거운 작업을 메인 스레드에서 실행했다. 그렇게 수초간 메인 스레드가 blocking되었고, 다른 UI는 반응할 수 없었다. 그리고 우리가 실행했던 viewModelScope의 Context를 확인하는 방법이 하나 있다.fun performCalculationOnMain(factorial: Int) { viewModelScope.launch { println("Coroutine Context: $coroutineContext") var result = BigInt..

주저리주저리/팝업스토어

더현대 서울 신카이 마코토 팝업스토어

홀린듯 인스타 광고를 보고 친구들을 꼬드겨 다녀온 첫 팝업스토어다. 더불어 여의도 더현대 서울을 처음 다녀온 후기이기도 하다. 6월 초에 다녀온 후기라는 점을 말하고 시작하겠다. 일단 대기부터처음 겪어보는 대기를 위한 대기줄이 있었다. 말 그대로 태블릿에서 대기 등록을 위한 대기줄이었다.그리 길지는 않았지만 대기 등록 후직원 분이 못해도 1시간은 기다려야 한다는 말을 듣고 바로 점심 먹으러 출발(사진에서 직원 분과 얘기하시는 분들은 모르는 분들 ㅋㅋ) 점심 먹으면서 또 기다리기사람이 너무 많아서 앉을 곳도 없었다. 파이브가이즈를 가보고 싶었지만 대기 팀 수가 세자리였던 것에 놀라서 후퇴 그나마 가장 근처 사람들이 다 먹어가는 자리를 골라 앉으니 에그슬럿이었다.앵거스 BELT 버거와 트러플 해시브라운, 콜..

BonusTrack02.dev
'분류 전체보기' 카테고리의 글 목록 (3 Page)