목록전체 글 (119)
기록
Java에서 Kotlin을 처음 접할때 가장 생소하고 헷갈리는 것 중 하나가 Custom Getter Setter이다. 먼저 var과 val의 차이를 생각해보면, 당연히 val은 get만 사용 가능하다. var 변수는 가져오면 get, set 둘 중 하나의 동작을 취할 수 있다. 이때 커스텀 기능은 get, set 중 원하는 동작을 개발자가 추가할 수 있다. 아래는 커스텀 set 예제 코드이다. private var productDetails = listOf() set(value) { field = value getProductDetails() } 이는 set을 부르는 순간에 getProductDetails() 를 호출하여 set할때마다 무조건 변수가 업데이트 되도록 한다. 이때 헷갈리는게 value와 ..
파이어베이스 동적링크 지원되는 웹주소를 자동화하려면 두가지 조건이 필요하다. 1. Intent filter에 autoVerify를 true로 선언 앱스킴 선언할때 인텐트 필터로 해당 속성을 함께 부여해준다. 2. 파이어베이스 프로젝트에 SHA-256 인증서 지문 추가 그리고, 사용하는 딥링크가 파이어베이스 동적링크라면 파이어베이스 프로젝트에 SHA-256 인증서 지문을 추가해야 한다. SHA-256 지문을 얻으려면 Android 터미널에서 ./gradlew signingReport 해당 명령어 입력시 지문값이 촤르륵 나온다.
https://developer.android.com/jetpack/compose/setup?hl=ko#sample 빠른 시작 | Jetpack Compose | Android Developers 빠른 시작 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Compose로 최적의 환경에서 개발하려면 Android 스튜디오를 다운로드하고 설치하세요. 새 프로젝트 템 developer.android.com 여러가지 공식 안드로이드 샘플 앱을 다운 받을 수 있다.
참고 공식문서 : https://developer.android.com/jetpack/compose/components/dialog?hl=ko 대화상자 | Jetpack Compose | Android Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 대화상자 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Dialog 구성요소는 팝업 메시지 developer.android.com Dialog는 Navigation, ViewModel SavestateHandle 이런거 없이 그대로 사용자에게 다음 행위에 이뤄질 일을 경고하는 스크린을 띄움과 동시에 행위 함수도 Dialog에 보내는게 구현되어 있어 ..
MutableState 값을 그대로 다른 컴포저블로 보내고, 이걸 또 다른 컴포저블로 보내고, 직접 .value 참조하여 값을 변경하면 위에서부터 아래까지 전부 리컴포즈가 일어난다고 한다. val dialogDescription = remember { mutableStateOf("") } ... PostCard( dialogDescription, ) ... PostCard( dialogDescription: MutableState, ) { dialogDescription.value = "텍스트" } 뭐 이런 형태에 대하여... 실제 코드는 depth도 더 깊고 변경하는 곳도 더 많았다. 이러한 경우에서는 해당 값에 대한 람다를 만들어서 아래로 람다함수만 보내 변경하는 방식이 많이 쓰인다고 한다. var ..
다익스트라 알고리즘 대표적인 최단경로 알고리즘 특정 노드에서 출발하여, 다른 모든 노드로 가는 최단경로 계산 그리디로 분류 (매 상황마다 가장 비용이 적은 노드를 선택하고 이를 반복하기 때문) 동작 과정 출발 노드를 설정한다 최단거리 테이블을 초기화한다 (출발 노드 자기 자신 0, 나머지는 무한) 방문하지 않은 노드 중 최단거리가 가장 짧은 노드를 선택한다 해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단거리 테이블을 갱신한다 3번과 4번 과정을 반복한다 Kotlin 우선순위 큐로 구현한 다익스트라 알고리즘 (백준 1753번) import java.util.* import kotlin.collections.ArrayList const val INF = 1000000 fun main() { val ..
fun main() { val s = Solution() // println(s.solution(arrayOf("banana", "apple", "rice", "pork", "pot"), intArrayOf(3,2,2,1,1), // arrayOf("chicken", "apple", "apple", "banana", "rice", "apple", "pork", "banana", "pork", "rice", "pot", "banana", "apple", "banana") // )) println(s.solution(arrayOf("apple"), intArrayOf(10), arrayOf("banana", "banana", "banana", "banana", "banana", "banana", "banan..
시간초과 코드 fun main() { val s = Solution() //println(s.solution(intArrayOf(1, 2, 1, 3, 1, 4, 1, 2))) println(s.solution(intArrayOf(1, 2, 3, 1, 4))) } class Solution { fun solution(topping: IntArray): Int { var answer: Int = 0 for(point in 0..topping.size-1) { val leftTopping = topping.copyOfRange(0, point + 1) val rightTopping = topping.copyOfRange(point + 1, topping.size) val leftToppingCount = le..
보호되어 있는 글입니다.
보호되어 있는 글입니다.