All

· Coding Test
문제 : 행의 크기가 정수 n으로 주어집니다. 행의 크기가 n인 파스칼 삼각형을 출력하는 프로그램을 작성해 보세요. 파스칼 삼각형이란 다음과 같은 형태로 나타나며, (i, j)에 적힌 숫자가 (i - 1, j - 1)에 적힌 숫자와 (i - 1, j)에 적힌 숫자의 합으로 나타납니다.n = 5일때의 예  파스칼 삼각형 구조를 이해해 보자면, 각 행의 첫 번째와 마지막 요소가 1입니다.그리고 중간의 요소가 바로 윗부분 2개 요소의 합이 됩니다. 로직은 파스칼 삼각형을 저장할 2차원 배열을 선언 후, 2차원 배열에 윗부분 두 개 값을 더하여 넣어줍니다.fun generatePascalTriangle(n: Int): List> { // 파스칼 삼각형을 저장할 리스트 초기화 val triangle =..
안드로이드에서 mp4 형식의 사용 방법 가이드 영상 파일을 넣어야 하는 작업이 생겼습니다.새로운 화면을 만드는 겸 Compose를 기반으로 mp4 영상을 넣어봤네요. ExoPlayer라는 오픈 소스 미디어 플레이어 라이브러리를 활용했습니다.https://developer.android.com/media/media3/exoplayer/hello-world?hl=ko 시작하기  |  Android media  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 도움말: 시작하는 또 다른 방법은 ExoPlayer Codedeveloper.android.com 먼저..
소수점 반올림 처리 표시에 사용되는 DecimalFormat import java.text.DecimalFormat import java.math.RoundingMode fun main() { val a = 13 val b = 0.165 val decimalFormat = DecimalFormat("0.000000") // 소수점 아래 6자리까지, 부족한 부분은 0으로 채움 decimalFormat.roundingMode = RoundingMode.DOWN val res = decimalFormat.format(a * b) println("FormatDouble -> $res") // 출력: "FormatDouble -> 2.145000" } (#는 해당 위치에 숫자가 없으면 아무것도 표시하지 않지만, ..
데이터 필터링 작업을 하던 중에 조금 특수한 케이스를 처리해야 하는 상황이 생겨 몇 가지 컬렉션 함수를 실무에서 사용했습니다. 어떤 boolean 값으로 구분이 가능한 데이터 리스트가 존재하고, 이 중 false인 부분을 다시 특정 날짜값에 의해 그룹화하여 어떤 필드의 최대 값을 가지고 있는 요소만 살리도록 하는.. 그런 로직이 필요했습니다. 일단 먼저 boolean 값 구분을 위해 partition 함수를 사용했습니다. 명시한 조건에 따라 리스트를 분리해 줍니다. 저는 true/false 조건이기 때문에 변수 2가지로 리스트를 구분할 수 있었습니다. val (fineDatas, nonFineDatas) = allDatas.partition { it.isFine() } 다음으로 nonFineDatas를 ..
· Coding Test
https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으..
· Coding Test
val inputString = "이것은 예시 문자열입니다. 문자열을 10글자씩 분할하여 리스트에 담습니다." val chunkSize = 10 // 문자열을 10글자씩 분할하여 리스트에 담기 val result = inputString.chunked(chunkSize) // 결과 출력 println(result) 결과 : [이것은 예시 문자열, 입니다. 문자열을 , 10글자씩 분할하여, 리스트에 담습니다, .] 배열에도 똑같이 적용 가능합니다.
코딩테스트 문제를 풀고 나면 항상 깃허브 데스크톱을 통해 공부 기록 레포지토리에 업로드했었습니다. 그런데 다른 분들의 이야기를 통해 자동으로 커밋, 업로드가 가능한 크롬 확장 프로그램을 발견했습니다. https://chromewebstore.google.com/detail/%EB%B0%B1%EC%A4%80%ED%97%88%EB%B8%8Cbaekjoonhub/ccammcjdkpgjmcpijpahlehmapgmphmk?hl=ko 설치 후, 깃허브에 로그인을 하면 레포지토리를 만들 것인지, 기존 레포지토리에 업로드를 할 것인지 선택할 수 있습니다. 이제 문제를 풀고 나면 초록색 'V' 체크 표시와 함께 깃허브를 통해 업로드가 된 것을 확인 가능합니다!
안드로이드의 Toast는 기본적으로 텍스트 메시지를 위한 것이며, 사용자 인터랙션(예: 버튼 클릭)을 직접 처리하는 기능을 내장하고 있지 않습니다. 따라서 커스텀 Toast로 버튼을 삽입한다고 하더라도 onClick에 대한 처리가 불가능합니다. 그래도 Toast에 Clickable을 추가하고 싶다면? Custom Dialog를 활용하여 어느 정도 비~슷하게 구현이 가능합니다. 우선 위와 같은 형태로 Custom Dialog 레이아웃 XML 파일을 구성했습니다. 그다음, ClickableToast라는 이름으로 Custom Dialog를 생성합니다. class ClickableToast(private val context: Context, private val text: String) : Dialog(con..
Fatal Exception: java.lang.IllegalArgumentException RemoteViews for widget update exceeds maximum bitmap memory usage (used: 16216160, max: 15940800) 위와 같은 에러가 간혹 Widget에서 Bitmap을 사용할 때 발생합니다. 이전에 관련된 글을 작성했으나 여전히 재발하는 경우가 있어서 더 강화된 로직을 문서를 참고하여 구성했습니다. 거대한 비트맵 처리에 대해서 아래 공식 문서에서 처리 로직을 제안해주고 있습니다. https://developer.android.com/topic/performance/graphics/load-bitmap?hl=ko 큰 비트맵을 효율적으로 로드 | App q..
기존 Realm DB 스키마에 Nullable한 필드를 새로 추가해야 해서 마이그레이션 작업을 진행했습니다. 그런데, 계속 모든 값이 null로 표시되고, 정상적인 데이터 입출력 처리가 안 되는 문제를 발견했습니다. 구글링 해보니 특정 필드를 nullable 하게 처리하려면 아래와 같이 마이그레이션을 진행해야 했습니다. case 19: schema.get("Notification") .addField("notificationId", int.class) .setNullable("notificationId", true); break; 기본적으로 Nullable은 false 처리가 되어있기 때문에 true로 변경해 줍니다. 이후 정상적인 입출력 처리가 가능했습니다.
SeungYong.Lee
'분류 전체보기' 카테고리의 글 목록 (2 Page)