본문 바로가기

분류 전체보기

(108)
Kotlin / 콜라츠 추측 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. 제한 사항 입력..
Kotlin/ 알고리즘 스터디 새해맞이 코딩테스트 스터디 with erika https://blog.naver.com/hanerika_11/223321639319 2024 Kotlin 코테 스터디 운영, 규칙 새해 기념 코테 스터디를 하나 열었다. 코테 스터디는 처음인지라 최적점을 잘 몰라서...ㅎㅎ 아마 이 글은... blog.naver.com 1. 하루 2문제 프로그래머스 문제 풀기 2. 레벨 0~1 단계 -> 2,3단계 목표 3. 주 2회 온라인으로 만나서 회고하기 4. 깃헙, 블로그에 기록 남기기
android / 안드로이드 webview에서 window.popup() 띄우기 웹뷰에서 window.popup()으로 새 창을 띄우는 코드가 있었는데, 안드로이드 앱에서는 새 창이 안뜨는 현상이 발견됐다. window.popup() 으로 새 창이 뜨면, 안드로이드 내에서 dialog가 뜨게 하여 새로운 webview를 띄우는 방법으로 해결했다. popup이 뜨는 것을 감지하는 곳은 webChromClient의 onCreateWindow였다. <pre id="code..
Kotlin / 코루틴 처리 1. 코루틴 동시성 알아보기 코루틴은 코틀린에서 별도 패키지로 동시성 기능을 처리할 수 있도록 다양한 클래스와 함수를 지원한다. 서브루틴(subroutine) : 순수함수. 함수가 호출되면 결과를 반환한다. 순차적으로 처리할 때 사용한다. 코루틴(coroutine) : 함수이지만 상태를 관리하고 일시 중단했다가 다시 시작할 수 있는 일시중단 함수로 구성한다. 코루틴을 구성하는 규칙 코루틴은 코루틴이 실행되는 별도의 영역인 코루틴 스코프를 구성해야 한다. 이 코루틴 스코프에서 코루틴 빌더 함수와 일시중단 함수를 사용한다. 코루틴 기본 구성 1. 코루틴 패키지의 구성 요소 코루틴 스코프: GlobalScope, CoroutineScope는 코루틴 스코프를 구성해서 내부에 코루틴 빌더 함수로 코루틴 계층을 구..
Kotlin / 파일 입출력과 스레드 처리 1. 파일 I/O 처리 파일 처리는 Input과 Output에 대한 데이터 처리 -> 데이터가 계속 처리되어 흐르는 것과 같아서 스트림(Stream)이라고 한다. 바이트나 텍스트 단위로 처리해서 사람이 인식할 수 있게 만들어야 한다. - 버퍼(Buffer) : I/O 처리의 성능을 향상하기 위해 중간에 저장공간을 두고 처리하는 방식 가장 기본으로 파일을 읽고 쓰는 기반 : InputSteram, OutputStream => 이를 기반으로 바이트 단위로 처리하도록 지원 : ByteArrayInputStream, ByteArrayOutputStream 바이트 스트림은 기본적으로 데이터를 읽고 쓰는 것이다. - read 메서드로 바이트 단위 읽기 (순환하면서 모든 바이트 읽음) - write 메서드로 한 바이..
Kotlin / 제네릭 알아보기 1. 제네릭 알아보기 제네릭은 타입 매개변수를 지정해서 임의로 작성하고 호출할 때 타입 인자를 전달해서 처리하는 방식이다. 1. 제네릭 처리 기준 자료형을 특정 문자로 지정 -> 타입 매개변수와 타입 인자로 사용 타입 매개변수(Type Parameter) : 클래스나 함수의 자료형을 임의의 문자로 지정해서 컴파일 타임에 자료형 점검을 할 때 사용 타입 인자(Type Argument) : 객체 생성, 함수 호출할 때 실제 자료형을 지정해서 정해진 임의의 타입을 실제 타입으로 변경 제네릭 구성 가능 여부 함수, 클래스, 추상 클래스, 인터페이스, 확장함수, 확장 속성 하나의 객체만 만드는 object 정의, 동반 객체, object 표현식은 제네릭을 구성할 수 없다. 타입 매개변수와 타입 인자를 지정하는 위..
android / 안드로이드 webview history back 화면 스크롤 유지 방법 (activity 이동) 안드로이드에서 띄운 webview에서 history back을 하면 전 화면으로 돌아가면서 refresh가 되는 현상이 생겼다. 스크롤을 내렸다가 다음 화면으로 넘어가고 뒤로 돌아왔을때, 화면이 새로고침 되어 스크롤 유지가 안됐다. 화면이 이동돼도, 이전 화면을 유지시키고 싶기 때문에 특정 화면 이동시 새로운 액티비티를 띄우고, 뒤로 갈때는 새로운 액티비티를 finish 하는 방법을 선택했다. 1. 다음 화면으로 넘어갈때 새로운 Activity를 만들어 Intent로 페이지 이동 override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean { Util.logMessage("shoudOverrideUrlLoading ==> $url"..
안드로이드 / image crop 라이브러리 사용 Android Image Cropper Android Image Cropper는 쉽게 이미지를 크롭하는 라이브러리이다. https://github.com/CanHub/Android-Image-Cropper GitHub - CanHub/Android-Image-Cropper: Image Cropping Library for Android, optimised for Camera / Gallery. Image Cropping Library for Android, optimised for Camera / Gallery. - GitHub - CanHub/Android-Image-Cropper: Image Cropping Library for Android, optimised for Camera / Gallery...

반응형