분류 전체보기

프로그래머스

문자열 정수의 합 코틀린(Kotlin)

이 문제는 내 블로그에 꾸준히 등장하는 패턴이다. 문자형을 정수형으로 변환하는 게 핵심인데, 코틀린으로 벌써 이 유형을 4번째 풀고 있다. 하지만, 귀신같이 오늘도 헷갈려서 내 블로그를 뒤적였다. 문제를 다같이 보자. 문제 반복문으로 문자열 각 인덱스를 정수형으로 변환해 모두 더하면 끝이다. 풀이 다시 한 번 나에게 상기시키는 메소드지만, Character를 Int로 바꿀 때는 웬만한 상황에서 digitToInt()를 사용하면 된다. 웬만한 상황이라 적은 이유는 코틀린 버전이 낮은 상황(1.5 아래)에선 Character.getNumericValue를 사용해야하기 때문이다. 실행 결과

Language/Kotlin

Suspend function 짧은 소개

suspend function은 다른 suspend function이나 Coroutine에서만 호출될 수 있다. 일반적인 코드에서 suspend function을 호출하려면 새 코루틴을 시작해야한다. 이렇게 만들어진 코루틴에서는 suspend function과 일반 함수를 모두 호출할 수 있다. suspend fun someMethod(delay: Long) { println("starts method") delay(delay) println("ends method") } 위 함수에서 suspend function이 실제로 suspend될 수 있는 지점은 어디일까? 바로 delay() 부분인데 더 길고 복잡한 suspend function이 있다면 그 함수가 포함하고 있는 모든 suspend funct..

프로그래머스

[PCCE 기출문제] 6번 / 가채점 자바(Java)

오랜만에 돌아온 PCCE 기출문제 시리즈이다. 이 사이에 있던 문제는 딱히 블로그에 올릴 만한 내용은 없어서 스킵해버렸다. 문제 실행 순서대로 설명해보면 n번 학생이 본인 점수를 질의한다. 그럼 해당 번호에 맞는 점수 두 개를 비교해서 같다, 다르다를 판단한다. 이렇게 정리해볼 수 있겠다. 풀이 원래는 score_list[i]와 같은지 판단하도록 코드가 구성되어있었다. 하지만, i번째를 비교하게 되면 입출력 예시에 대입해볼 때 값이 이상해진다. 학생의 번호 값이 들어있는 numbers 안의 값을 가져와야 하는데 score_list의 0번부터 비교하게 되면 안된다. 그래서 numbers[i] 값을 가져오게 되었는데 이 때, 입출력 예시에서 numbers 값이 1인 경우, our_score에서 비교하는 값이..

프로그래머스

원하는 문자열 찾기 코틀린(Kotlin)

이번에는 코틀린으로 정말 간결하게 풀 수 있는 문제가 있어서 풀어보았다. 문제 myString에 pat이 대소문자 상관없이 포함되기만 하면 1 아니면 0을 리턴하면 된다. 입출력 예시에서 길이를 논하는 부분이 있는데 굳이 필요없는 부분이라 생각한다. 풀이 최대한 짧게 쓰려고 했다면 if-else문의 중괄호 조차 생략해버릴 수 있었는데 그렇게 되면 가독성이 떨어져 보여 중괄호를 빼지 않고 써보았다. 나는 모두 소문자로 변환하여 비교했지만 반대로 모두 대문자로 변환하여 비교해도 무관하다.

프로그래머스

홀짝에 따라 다른 값 반환하기 코틀린(Kotlin)

약 한 달만의 문제 풀이 시간이 돌아왔다. 긴 말 할 것 없이 바로 문제를 확인해보자. 문제 입력값이 홀수이면 그 이하 홀수값을 모두 더해 리턴하고, 짝수이면 그 이하 짝수들의 제곱값을 모두 더해 리턴한다. 풀이 반복문을 통해 수를 더할 때 step을 설정해 주었는데 홀짝 여부에 따라 시작 숫자를 다르게 설정했다. 실행 결과

Android

Android TextClock format 지정하기

TextClock은 생각해보면 되게 흔한 기능인데 텍스트로 시간을 보여주기 위한 방법을 고민하다 찾게된 클래스이다. 놀랍게도 API 17에서 추가된 꽤 오래된 클래스였다. 형식 지정하기(format) TextClock으로 시간을 보여줄 때 형식을 지정할 수 있다. 12시간제 혹은 24시간제로 말이다. 게다가 SimpleDateFormat에서 사용하던 형식과 같이 사용할 수 있다. 나의 경우, 특정 단말기에서 시간 형식 지정이 되지 않았다. 그래서 이리저리 검색하던 결과 방법을 찾았다. 바로 12시간제 혹은 24시간제 중 하나를 null로 처리해주는 것이다. // 12시간제를 사용하는 경우 textClock.format12Hour = "HH:mm:ss" textClock.format24Hour = null..

Android

Android 14에서 경험한 버그

먼저 내가 경험한 버그는 단순히 Android 14버전에서 모두 나오는 현상이 아님을 알린다. 왜냐하면, Android 14버전의 구글 픽셀폰에서는 이 버그가 발생하지 않기 때문이다. 어떤 버그인가? setTypeface 메소드가 작동하지 않는 버그이다. setTypeface 메소드는 공식 사이트의 링크를 첨부한다. https://developer.android.com/reference/android/widget/TextView#setTypeface(android.graphics.Typeface) TextView | Android Developers android.inputmethodservice developer.android.com Android 14, One UI 6.0의 삼성 디바이스에서 발생하는..

Android

Android Media3 Exoplayer Resize Mode 정리

모드 리스트 RESIZE_MODE_FIT = 0 RESIZE_MODE_FIXED_WIDTH = 1 RESIZE_MODE_FIXED_HEIGHT = 2 RESIZE_MODE_FILL = 3 RESIZE_MODE_ZOOM = 4 모드 설명 RESIZE_MODE_FIT의 경우, 설정된 비율에 맞춰 width 혹은 height를 줄인다. 이 모드는 기본 값이다. AspectRatioFrameLayout 클래스의 생성자에서 resizeMode 멤버 변수 값을 0으로 설정하기 때문에 초기값은 0이다. RESIZE_MODE_FIXED_WIDTH의 경우, width를 고정하고 height를 늘이거나 줄여 설정된 비율을 맞춘다. RESIZE_MODE_FIXED_HEIGHT의 경우, height를 고정하고 width를 늘..

Android

Android Jetpack Compose ConstraintLayout match constraint

Jetpack Compose에서 ConstraintLayout을 사용하며 겪은 어려움을 공유해보려한다. (내가 Compose에 대한 사전지식이 충분하지 않은 탓이 클 것이라 생각하지만 말이다.) 내가 가장 힘들었던 부분은 제목에 적은 것처럼 match constraint 속성을 어떻게 적용해야하는가였다. match constraint라는 말이 어색할 사람들을 위해 풀어서 설명해보자면 이런 것이다. width, height를 0dp로 설정하고 View의 start, end, top, bottom에 제약 조건을 건다. 그렇게 되면 뷰가 제약 조건에 맞춰 늘어난다. 당연히 Compose에서도 그렇겠거니! 생각을 하고 Modifierdml width, height를 0.dp로 설정한 뒤 실행을 했더니 정말 그대..

Language/Swift

Swift - 클래스(Class)

1. 클래스란 무엇일까? 클래스는 참조(reference) 타입이다. 이름은 파스칼 케이스로 작성한다. 클래스는 다중 상속이 불가능하다. 2. 클래스 관련 문법 클래스를 선언할 때는 class 키워드를 사용한다. class Sample { // 가변 프로퍼티 var mutableProperty: Int = 100 // 불변 프로퍼티 let immutableProperty: Int = 100 // 타입 프로퍼티 static var typeProperty: Int = 100 // 인스턴스 메서드 func instanceMethod() { print("instance method") } // 타입 메서드 static func typeMethod() { print("type method - static") } ..

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