All

api 통신에 대한 에러 발생 시, 해당 통신에 대한 Reqeust Body를 추출하여 사용자가 어떠한 값을 보냈는지 파악할 필요가 있다. @Body 또는 @Field 형식으로 보내는 경우에 대해 OkHttpClient에서 값을 추출하는 로직을 구성해 봤다. private fun extractBodyStringFromRequest(request: Request): String { return if (request.body is FormBody) { //Field type val field = mutableMapOf() val formBody = request.body as FormBody for (i in 0 until formBody.size) { field[formBody.name(i)] = form..
달력형 위젯을 구현 중, Background ImageView에 디자이너분이 제작해 주신 테마 이미지를 Bitmap으로 삽입하던 중 다음과 같은 오류가 발생했다. java.lang.IllegalArgumentException: RemoteViews for widget update exceeds maximum bitmap memory usage (used: 7474416, max: 6432000) 무슨 오류인가.. 확인해 보니 Bitmap 메모리 사용량이 한도를 초과한 것이다. 이미지 크기와 해상도가 상이하기 때문에 충분히 발생할 수 있다고 생각했다. 위젯에 최적화된 이미지를 다시 제작하기 전까지는 임시로 크기를 줄여서라도 사용하기로 결정했다. fun getBitmapSize(file: File): Siz..
개발을 진행하면서 App에 특정 테마 색상을 지정하고 싶은 경우가 있다. 그때 테마가 어두운 계열인지 밝은 계열인지에 따라 Full Screen이 아닌 이상 Status Bar와 Navigation바 아이콘 색상을 테마 색상에 대해 반전시키는 것이 좋다. val isDarkTheme = AppTheme.isDarkTheme() //Custom function to check if it is dark theme WindowInsetsControllerCompat(window, window.decorView).isAppearanceLightStatusBars = !isDarkTheme WindowInsetsControllerCompat(window, window.decorView).isAppearanceLi..
· Coding Test
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/181910 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문자열을 charArray로 변환 후, 배열의 size에서 n 값을 빼 지정된 인덱스 값을 구한다. 그리고 전체 문자열에서 인덱스 n번 이후의 char를 출력하면 된다. fun behindN(my_string: String, n: Int): String { val length = my_string.toCharArray().size val check = length - n var ..
· Coding Test
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/181939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 인자로 들어온 두 Int 값을 String으로 변환하여 문자열로 단순하게 이어 붙인 뒤, 다시 Int로 형변환하여 max 값을 구한다. fun morePlus(a: Int, b: Int): Int { val first = (a.toString() + b.toString()).toInt() val second = (b.toString() + a.toString()).toInt() ..
· Coding Test
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3중으로 for문을 순회하며 각 자릿 수의 숫자를 더해서 0이 나오는 경우의 횟수들을 계산해 주면 된다. class Solution { fun solution(number: IntArray): Int { var answer = 0 for (i in number.indices) { for (j in i + 1 until number.size) { for (k in j + 1 until ..
· Coding Test
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 먼저, 문제를 읽어봤을 때, 수포자들이 찍는 방식에는 일정한 패턴이 있다. 그 패턴을 한 단위로 잘라 IntArray로 정렬해 둔다. val userAnswers = arrayOf( intArrayOf(1, 2, 3, 4, 5), intArrayOf(2, 1, 2, 3, 2, 4, 2, 5), intArrayOf(3, 3, 1, 1, 2, 2, 4, 4, 5, 5) ) 확인 대상은 3명..
· Coding Test
문제 링크 - 단계별 풀이 중 스택 하위로 분류되어 있다. 스택을 활용하여 풀었다. https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 입력된 문자열을 char 단위로 순회하며 괄호 문자 [, ], (, ) 차례가 올 때, 왼쪽 방향 괄호 (, [ 인지를 판단하여 아니라면 스택에 추가하고 다시 순회한다. 이후 다음 [, ], (, ) 차례에서 현재 스택의 peek 값이 왼쪽 방향 괄호 [, ( 일 경우 차례가 온 char와 비..
const val은 컴파일 시간 동안 할당되는 상수 값이다. 따라서 함수나 생성자에게도 결코 할당 불가능하며, 오직 문자열이나 기본 자료형으로만 선언될 수 있다. companion object { const val KET_POSITION = "position" } - 클래스의 프로퍼티나 지역 변수 할당이 불가능하여 companion object 내부에 선언한다. - 자바에서는 static final 같은 형태이다.
· Coding Test
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 직사각형은 가로 x 세로를 통해 넓이를 구한다. 그림을 그려 구상한 후 풀었다. 첫 번째 x 좌표 값 요소들과 두 번째 y 좌표 값 요소들을 분리하여 중복 없이 정렬하여 각 x 리스트와 y 리스트에서 last - first 후, 곱해주면 된다. fun rectangleSizeFromDots(dots: Array): Int { val xDots = dots.map { it[0] }.to..
SeungYong.Lee
'분류 전체보기' 카테고리의 글 목록 (6 Page)