전체 글
-
[ 프로그래머스 ] 가장 먼 노드 (Kotlin )자료구조 & 알고리즘/Programmers 2022. 8. 5. 02:09
https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 문제 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를..
-
[ Android ] Context 와 메모리 릭Android & Kotlin 2022. 7. 27. 14:28
📌 주요 기능 어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근 리소스, db, preference 접근 : getResourece() … package 위치 인식 : getPackageName() 안드로이드 시스템 서비스에서 제공하는 API 호출하기 엑티비티 및 서비스 실행 : startAcitivity(), startService() 시스템 서비스 접근 : getSystemService 안드로이드가 제공하는 시스템-레벨 서비스의 메너저 객체를 반환 받을 수 있다. 📌 Context 의 종류와 사용시 주의점 Context 의 종류 📍 Application Context 싱글턴 인스턴스 getApplicationContext 를 통해 접근가능 Application 라이프사이클에 의존함 📍 Base..
-
[ Android ] CallAdapter, SealedClass 를 활용한 레트로핏 응답 처리Android & Kotlin 2022. 7. 12. 01:28
📌 문제상황 레트로핏을 통한 통신시 결과 값에 대해 처리에 대한 고민이 생겼습니다.. 1. 서버로 부터 실패의 응답이 오는 경우 2. 서버로부터 잘못된 형태의 응답이 오는 경우 3. 응답 형태이긴 하지만 빈값인 경우 등등 응답에는 다양한 문제가 있을 수 있고 이를 관리할 수 있는 무언가가 필요하다는 생각을 했습니다. 응답에 대한 검증을 어디서 어떻게 할지 또한 고민이었습니다. 📌 해결 방법 1 : Network Reuslt Class (Seald Class) 첫번째 방법은 SealdClass 로 응답을 감쌈으로써 응답의 형태를 일관성 있게 추상화 하는 것입니다. sealed class NetworkResult { class Success(val data: T) : NetworkResult() class ..
-
[ Android ] View 의 이미지 화 (구글 맵 마커 커스터 마이징 예제)Android & Kotlin 2022. 6. 20. 00:52
📌 배경 구글맵의 마커 부분을 기존 서비스에서 제공하는 ui 형태가 아닌 새로운 ui 로 커스터마이징 해서 사용하고 싶어 찾던중 View 를 Bitmap 으로 변환하는 방법을 알게 되었습니다. 📌 주요 코드 분석 1. View 의 Instance 화 커스터마이징할 뷰를 생성하고 인플레이트하여 인스턴스화 시켜줍니다. 그 외 필요한 값에 대해 초기화 해줍니다. 2. View 의 위치 및 크기 설정 measure 함수를 호출함으로써 onMeasure 가 내부적으로 호출되고 비로서 우리는 View 의 크기에 대한 접근을 할 수 있게 됩니다. 그전에는 0 값을 반환함. measure 의 인자인 measureSpec 에 UNSPECIFIED 에 해당하는 0 을 넣었습니다. https://developer.andro..
-
[ Android ] 안드로이드 저장소 정리 (Legacy, Scoped Storage)Android & Kotlin 2022. 6. 12. 20:08
Android Storage 요약 안드로이드는 시스템은 내부 저장소와 외부저장소를 갖는다. 내부 저장소는 변화가 없지만 외부 저장소에 대해서는 안드로이드 10 버전 이후로 변경되었다. 변경전 외부 저장소를 Legacy storage, 이후 저장소를 ScopedStorage로 명명한다. ScopedStorage로 변경되면서 다른 앱에서 외부저장소에 저장한 파일들에 대한 접근이 까다로워졌다. 1. 내부 저장소 앱을 설치하면 해당 앱을 위한 저장공간이 할당됨 해당 앱에서만 접근이 가능함 앱이 삭제되면 같이 삭제됨 저장 공간이 한정되어 용량이 큰 데이터는 외부 저장소를 이용하는 것이 좋음 캐시 데이터, 데이터베이스, 파일등을 저장한다. 2. 외부 저장소 공용 공간이 타입별로 분리됨 공용공간의 미디어 파일 경우 ..
-
[ 프로그래머스 ] 정수 삼각형 (JAVA )자료구조 & 알고리즘/Programmers 2022. 6. 12. 19:20
https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 📌 문제 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 📌 제한 사항..
-
[Android] Background Task1 : WorkManager 개념 및 예제Android & Kotlin 2022. 6. 7. 02:01
📍 Android 에서의 Background의 의미 안드로이드에서의 Background 는 말 그대로 눈에 보이지 않는 곳에서의 작업을 말한다. Activity 를 예로 들면 onResume 부터 onPause 까지에서의 작업을 를 Foreground 작업 그 이외 사용자에게 보이지 않는 상태에서의 작업을 Background 작업이라고 할 수 있다. 📌 BackgroundTask 구분하기 작업에 대해 어떤 Background 솔루션을 사용할지를 고민해볼 필요가 있다. 기존에 FirebaseJobDispatcher, GcmNetworkManager, Job Scheduler 등 이전 백그라운드 Api 를 WorkManager가 대체하게 되었다. 현재는 백그라운드 작업에 대해 WorkManager, Alar..
-
[ 프로그래머스 ] 섬 연결하기 (Kotlin )자료구조 & 알고리즘/Programmers 2022. 6. 6. 02:34
📌 [ 프로그래머스 ] 섬 연결하기 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. 📌 제한 사항 섬의 개수 n은 1 이상 100 이하입니다. costs의 길이는 ((n-1) * n) / 2이하입니다. 임의의 i에 대해, costs[i][0] 와 costs[i] [1]에는 다리가 연결되는 두 섬의 번호가 들어있고, costs[i] [2]에는 이 두 섬을 연결하는 다..