전체 글185 정렬 알고리즘[Merge Sort] 정렬알고리즘을 살펴보기전에 먼저 시간복잡도에 대해서 알아볼 필요가 있다시간복잡도에 대한 내용을 정리했었어서 링크만 첨부하도록 하겠다시간복잡도란?간단하게 한줄로 요약해보면시간복잡도란 "입력값과 연산수행시간의 상관관계를 나타내는 척도" 를 말한다즉, "문제를 해결하는데 걸리는 시간과 입력의 합수관계"이다. 시간복잡도는 최악을 기준으로 "빅오 표기법"으로 표시하여 성능을 예측하는데,시간복잡도가 빠른순으로 보면 아래와 같이 나타낼 수 있다O(1) O(log n) O(n) O(n log n) O(n^2)O(1)이 시간복잡도가 가장 좋고(가장 빠르고), O(n^2)이 가장 안좋은것(가장 느림)을 알 수 있다 Merge sort 란?이제 5개의 정렬알고리즘이 있는 표를 보면서 Merge Sort에 대해서 알아.. 2024. 7. 22. 알고리즘[시간복잡도] 시간복잡도란?우리는 일상생활에서 거의 알고리즘을 사용한다예를들어 출퇴근할때 어떻게가야 효율적으로 갈수있을지 생각하는것도 알고리즘이라고 할 수 있다.이때 우리가 중요하게 생각하는것이 "속도"다. 시간복잡도란 "입력값과 연산수행시간의 상관관계를 나타내는 척도" 를 말한다즉, "문제를 해결하는데 걸리는 시간과 입력의 합수관계"이다. 시간복잡도 표현방법?점근적 표기법으로 시간복잡도를 나타내는데, 아래 3가지가 있다최상의 경우 : 오메가 표기법 (Big-Ω Notion)평균의 경우 : 세타 표기법 (Big-θ- Notion)최악의 경우 : 빅오 표기법 (Big-O Notion)평균인 세타표기법을 사용하는것이 가장 좋다고 생각할 수도 있는데, 평가하기 까다롭다고한다.시간복잡도는 최악을 기준으로 "빅오 표기법"으로.. 2024. 7. 22. [Android/Kotlin] Room의 3요소와 역할은 뭘까? ❓ RoomDB 란??SQLite 데이터베이스를 더 쉽게 사용할 수 있도록 도와주는 ORM(Object-Relational Mapping) 라이브러리다.RoomDB를 사용하면 DB와 앱 간의 데이터 작업을 간소화하면서도, SQLite의 강력한 기능까지 활용할 수 있다는 이점이 있다. 주요특징SQLite위에서 작동해서, 복잡한 SQL쿼리를 작성하지 않고 데이터 효율적으로 관리가능컴파일시점에 SQL문법검사를 수행해, 오류 줄여줌 (런타임 오류 감소)테이블과 객체간의 변환이 자동으로 처리됨 (데이터 매핑)Room은 LiveData, Flow같은 라이프사이클 인식컴포넌트와 잘 통합되어, 반응형 프로그래밍에 적합함백그라운드 작업최적화-> 데이터 작업은 기본적으로 백그라운드 스레드에서 수행하도록 되어있는데, 얘는 .. 2024. 6. 23. [Android/Kotlin] 프래그먼트간 데이터를 공유하는 ViewModel 카카오맵에서 라벨(마커)를 눌렀을때 bottomSheet가 나오는데,마커를 눌렀을때 지역에 따라 bottomSheet의 데이터가 다르게 나왔으면 했다 마커를 눌렀을때 MapFragment에서 데이터를 받아오는것까지는 성공했다그런데 그 받아온 데이터를 뿌려줄곳이 MapFragment가 아니라 BottomSheetFragment였다.즉, 서로 다른 Fragment에서 같은 viewModel데이터를 공유해야되는 상황이였다 그럴땐 sharedViewModel을 사용해서 viewModel을 선언할때 activityViewModels()로 선언하면, 서로 다른 Fragment에서 같은 viewModel데이터를 공유해서 사용할 수 있다!!!(한쪽 프래그먼트에서는 Data를 Update하고, 다른 한 프래그먼트에서는 .. 2024. 6. 5. [에러] StateFlow -> launchWhenCreated deprecated 해결 viewLifecycleOwner.lifecycleScope.launch {}를 사용하여 Fragment의 수명 주기에 연결된 코루틴을 사용하여 Flow를 사용하면, 이lifeCycle의 수명주기를 인식을 못한다는 단점이 있다 따라서 lifecycleScope.launchWhenCreated를 사용하여, lifeCycle의 수명주기를 인식하도록 해줄수있다아래는 공식문서에 나온 설명이다launchWhenStarted는 이 LifecycleCoroutineScope를 제어하는 수명 주기가 최소한 Lifecycle.State.STARTED 상태일 때 지정된 블록을 시작하고 실행합니다.반환된 Job은 Lifecycle이 폐기되면 취소됩니다. 즉, launchWhenCreated는 수명 주기가 STARTED .. 2024. 5. 31. [Android] 로그캣 오류가 세로로 뜨는 문제 이런식으로 로그캣의 에러들이 이상하게 세로로 뜨는 문제를 접했다.. 아래 블로그에는 invaled cache사용해서 제거하면 그동안 저장되어있었던 임시 데이터들이 제거되면서 잘 작동한다고 나와있었다그래서 시도해봤지만 내 로그캣 오류는 똑같았다 맨 왼쪽에 soft wrap이라는걸 클릭한 상태로 로그캣을 실행해서 발생한 문제였다이걸 해제하고 다시 실행하니깐 정상적으로 잘 뜨는것을 확인할 수 있었다 # 참고자료https://kumgo1d.tistory.com/entry/AndroidKotlin-Android-Studio%EC%97%90%EC%84%9C-logcat%EC%9D%B4-%EB%8F%99%EC%9E%91%ED%95%98%EC%A7%80-%EC%95%8A%EB%8A%94-%EC%9D%B4%EC.. 2024. 5. 31. 이전 1 ··· 3 4 5 6 7 8 9 ··· 31 다음