분류 전체보기

프로그래머스

n번째 원소부터 코틀린(Kotlin)

오늘 문제는 리스트를 자르는 부분이 필요해서 한 번 풀어보게 되었다. 문제 문제를 읽어보면 주의해야할 점이 하나 있었다. 바로 인덱스에 관련한 것인데 입출력 예시에서 보면 n값이 3일 때, num_list의 2번 인덱스에서부터 자르는 모습을 볼 수 있었다. 풀이 풀이 코드는 한 줄로 적었기 때문에 읽을 때 무리가 없을 것이라 생각한다. 주어진 배열을 리스트로 변경한 뒤, 주어진 인덱스에 맞춰 자르고 다시 배열로 형변환을 해주었다. 실행 결과

프로그래머스

간단한 논리 연산 코틀린(Kotlin)

이번 문제는 제목에 충실한 문제다. 문제를 먼저 살펴보자. 문제 연산자에 대한 진리표를 보면 아랫 화살표는 OR 연산으로 보이고, 윗 화살표는 AND 연산으로 보인다. 풀이 결국 문제에서 주어진 네 개의 변수값을 원하는 식에 대입해주면 되는데 먼저 x1, x2의 결과가 true일 때 x3, x4의 연산값이 의미가 있고 false인 경우, 무조건 false로 리턴되어야 한다. 실행 결과

Android

Android UrlQuerySanitizer getValue error

이번에는 안드로이드 UrlQuerySanitizer를 Url Query를 파싱하는데 사용하지 않을 때 생긴 문제를 다루고자 한다. 문제 발생 배경 최근 새 프로젝트를 진행 중, API 응답이 json, xml, csv와 같은 형식이 아닌 URL의 GET method 사용 시 붙어있는 Query 형식으로 body 값을 주는 녀석이 있었다. 물론 반복문을 사용해서 일일히 파싱할 수도 있었지만, Retrofit에서 json, xml 형식을 곧장 객체로 변환해주는 기능을 맛 본 이상 그 전으로 돌아가긴 싫었다. 그래서 찾다 보니 우회할 방법으로써 찾은 녀석이 UrlQuerySanitizer였다. 알고 보니 API level 1부터 유구한 역사를 가진 친구였지만 처음 들어봤다.(^^) UrlQuerySanitiz..

Android

Android ADB로 크래시 로그 저장하기

이번에는 저번 글과 이어지는 부분이 있는데 시스템 파일로 저장된 크래시 로그 저장하는 방법에 대해 소개해보려 한다. 필요해진 배경 며칠동안 앱을 실행시켜두고 안전성 테스트를 하던 도중이었다. 그런데 갑자기 주말이 지나서 보니 앱이 죽어있던 것이 아닌가.. 분명 어떤 이유에서인지 비정상 종료가 되었을 것인데 그 원인을 보고 싶어 검색해보게 되었는데, 안드로이드에서 크래시 로그를 파일로 저장하는 폴더가 있다고 해서 그 내부를 살펴보게 되었다. 목표물 안드로이드 시스템 내부에 tombstones 라는 폴더가 존재하는데 진짜 언어 그대로 죽은 이유를 적어둔 백트레이스를 가진 폴더이다. 내부를 확인해보니 "tombstone 0"과 같은 형식으로 tombstone에 숫자를 더한 형식의 이름을 가진 파일들이 있었고,..

Android

Android ADB로 스크린샷 저장하기

오늘은 ADB(Android Debug Bridge)로 스크린샷을 찍고 저장하는 방법에 대해 공유해보겠다. 필요해진 배경 이 기능이 필요했던 이유를 설명하자면 Android TV 같은 녀석들은 Android Studio가 설치된 컴퓨터와 USB 연결을 통해 실행할 수 없는 경우가 있다. 그렇게 되면 같은 Wifi 망에 접속해 원격 ADB로 실행해야 했다. 또한 Android TV 같은 경우 일반 스마트폰처럼 전원버튼과 음량버튼으로 스크린샷을 찍을 수 없기 때문에 이 글의 주제인 ADB로 스크린샷 저장하는 방법을 찾아보게 되었다. 방법 일단 ADB로 디바이스가 연결되어있다는 전제 하에 글을 작성해보도록 하겠다. adb shell screencap -p /sdcard/screenshot.png 위 명령어를 ..

프로그래머스

문자열 정수의 합 코틀린(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을 설정해 주었는데 홀짝 여부에 따라 시작 숫자를 다르게 설정했다. 실행 결과

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