https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr [문제]전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, ..
Today I Learn
2차원 배열을 1차원으로 정리하는 방법들을 정리해 봤습니다.코테에서도 많이 활용되는 부분입니다. - 중첩된 for 루프를 사용하여 변환하기fun flattenArray(twoDArray: Array): IntArray { val rows = twoDArray.size val cols = twoDArray[0].size val oneDArray = IntArray(rows * cols) var index = 0 for (i in 0 until rows) { for (j in 0 until cols) { oneDArray[index++] = twoDArray[i][j] } } return oneDArray}fun main() ..
이미지 로딩 라이브러리 중 하나인 Colil을 Compose UI에서 로딩 시, 실패했을 경우의 Error를 확인하기 위한 방법입니다. val painter = rememberAsyncImagePainter( model = ImageRequest.Builder(context).data(item.imageUrl) .placeholder(R.drawable.blank_ad).build())인자로 받은 item의 imageUrl을 통해 이미지를 로딩합니다. 물론 manifest에 인터넷 사용 권한이 허가되어 있는지 또한 반드시 체크해 주세요.로딩했는데, placeholder의 Drawable로 표시되면 뭔가 문제가 있는 것이겠지요? val state = painter.statepainter의..
기존 Realm DB 스키마에 Nullable한 필드를 새로 추가해야 해서 마이그레이션 작업을 진행했습니다. 그런데, 계속 모든 값이 null로 표시되고, 정상적인 데이터 입출력 처리가 안 되는 문제를 발견했습니다. 구글링 해보니 특정 필드를 nullable 하게 처리하려면 아래와 같이 마이그레이션을 진행해야 했습니다. case 19: schema.get("Notification") .addField("notificationId", int.class) .setNullable("notificationId", true); break; 기본적으로 Nullable은 false 처리가 되어있기 때문에 true로 변경해 줍니다. 이후 정상적인 입출력 처리가 가능했습니다.
- 두 배열 간의 합집합 : union() val array1 = arrayOf(1, 2, 3, 4, 5) val array2 = arrayOf(4, 5, 6, 7, 8) // 합집합 구하기 val union = array1.union(array2).toTypedArray() println("합집합: ${union.joinToString(", ")}") - 두 배열 간의 차집합 : subtract() val array1 = arrayOf(1, 2, 3, 4, 5) val array2 = arrayOf(4, 5, 6, 7, 8) // 차집합 구하기 val difference1 = array1.subtract(array2).toTypedArray() val difference2 = array2.subtrac..
Android Compose에서 Context 사용하기 Compose - ComponentActivity에서는 기존 AppCompatActivity와는 다르게 바로 context를 가져올 수 없는 것을 발견했다. Compose에서는 현재 화면에 대한 Context를 참조하는 'LocalContext'를 활용해야 한다. class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { FeatherAndroidTasksTheme { // Provide the current context using Composition..
다음과 같은 두 개의 List를 각각 인덱스 순서대로 짝을 맞추어 Map으로 변환하려 한다. zip() : 두 개의 리스트를 쌍으로 묶어준다. toMap() : Map으로 변환한다. val map = name.zip(yearning.toTypedArray()).toMap()
아래와 같이 api 호출 인터페이스를 구성하여 서버와의 통신을 시도했는데, EOFException이 발생했다. interface TestApi { @PUT("/api/test") fun update( @HeaderMap headers: HashMap, @Body request: BodyRequest ): Call } java.io.EOFException: End of input at line 1 column 1 path 통신 후, Response를 반환하는데 Empty Response를 반환하고 있었다. 하지만 내가 작업하면서 NormalResponse Type으로 반환되도록 구성하면서 발생하는 것이 원인이었다. 이 경우 2가지 해결 방법이 존재했다. 1. NormalResponse가 아니라 Unit으로..
제일 상위에 있는 차원의 배열을 해제해 준다. List 형태로 반환되며, 모든 중첩 배열을 해제해 주기 위해 n 차원만큼 flatten() 처리해주어야 한다. fun main() { val arr = arrayOf(arrayOf(1,2,3), arrayOf(7,8,9), arrayOf(arrayOf(100, 101, 102), arrayOf(201, 202, 203))) println(arr.contentDeepToString()) val arr2 = arr.flatten() println(arr2.toString()) }
사용자의 디바이스를 식별하거나 정보 파악을 위해서 id 또는 기기명, OS 버전 등의 확인이 필요한 경우가 있다. 이러한 정보를 Build Class에서 가져올 수 있다. GPT를 통해 확인한 Build Class에 담긴 정보는 아래와 같다. 1. Build.VERSION: Android 운영 체제의 버전 정보를 제공합니다. 예를 들어, Build.VERSION.SDK_INT를 통해 API 레벨(안드로이드 버전 코드)을 얻을 수 있습니다. 2. Build.VERSION_CODES: Android API 레벨을 상수로 정의한 클래스입니다. 코드에서 각 버전에 대한 조건을 확인할 때 사용됩니다. 3. Build.MODEL: 기기의 모델 이름을 제공합니다. 4. Build.MANUFACTURER: 제조사 정보..