오늘 풀어본 문제는 코틀린에서 forEach를 사용해보고,여기서 continue와 break 역할을 어떻게 대체하면 좋을지 다시 복습해보는 과정이었다. 문제문제는 l과 r이 나오는 시점에서 배열을 좌우로 자르면 되는 문제이다. 다만 위에서 잠시 언급했듯 break와 continue를 사용해야하는 이유가 문제에 있다. 배열을 좌우로 자르는 시점에서는 break가,그렇지 않은 경우에는 continue가 필요하다. 풀이 먼저 forEachIndexed를 사용해 반복문을 대체 해주었고,이 때 기존 Java처럼 continue, break는 사용할 수 없기에run scope 함수로 감싸주었다. 그리고 나서, continue가 필요한 지점은 forEachIndexed를 리턴해주었고break가 필요한 지점은 run ..
기능이 필요해진 배경이번에 새로운 앱을 준비하며 폴드(플립이 아닌) 디바이스인지 확인해야만 하는 상황이 생겼다. 그렇게 폴드 디바이스인 경우, layout constraints를 조정해 다른 UI를 구성해주기 위함이었다. 다만, 폴드 디바이스를 어떻게 체크할 것인가에 대해 찾아보던 중"2가지 조건을 충족하면 폴드 디바이스다!" 라는 결론을 낼 수 있었다. 1번째 조건WindowInfoTracker를 사용해 폴더블 디바이스인지 확인하는 것이다. developer 사이트 문서에서 확인해보면WindowInfoTracker에서 FoldingFeature가 있는 경우, 폴더블 디바이스라는 것을 알 수 있다. https://developer.android.com/develop/ui/compose/layouts/ad..
최근 풀었던 기출문제 시리즈를 이어서 풀어보다저번에 풀었던 7번 문제와 비슷한 유형이라 다시 한 번 글을 올리게 되었다. 저번 문제도 비슷하게 기존에 정의된 함수가 있고정답을 리턴하는 함수에서 어떻게 호출할 지를 정했었다. 문제주어진 배열에서 On이면 승차 Off이면 하차임을 의미한다. 그리고 곧장 풀이로 넘어가서 설명을 같이해보겠다. 풀이먼저 num_passenger 변수에는 승하차로 인해 총 몇 명이 타고 있는지를 저장해야 한다. 여기서 사용할 수 있는 함수에는 func1,2,3,4가 있다. 여기서 3번은 하차하는 인원을 세는 함수, 4번은 승차하는 인원을 세는 함수이다. 그렇게 계산이 끝난 num_passenger 변수와기존 파라미터로 주어진 seat 수를 사용해 남은 좌석 수를 리턴하게 된다. 이..