분류 전체보기
-
BOJ1036 성지키기Algorithm 2024. 11. 27. 23:05
OverviewProblem: https://www.acmicpc.net/problem/1236TimeComplexity: O(nm) / 행열 탐색을 위한 이중 포문이 최대 시간 / n,m이 최대값이 50이므로 충분히 시간내 풀 수 있다.Type: 행열Git: https://github.com/kylelab/algorithms/blob/main/src/boj/BOJ1036.ktSolution경비원이 없는 행과 열의 갯수를 구한 후 그 중 최대값을 출력한다.모든 행에 한개씩 채우고, 나머지 열에 한개씩 채우는 것이 경비원의 최소값이므로, 행과 열중 큰 값이 정답이 된다. Solution1 이중 포문으로 각 행에 경비원이 포함되었는지 확인하고 총 행 수에서 경비원수를 뺀다.fun main() { val..
-
LiveData와 Flow: Android UI 데이터 관찰의 두 가지 접근 방식 비교Android 2024. 11. 26. 11:06
// LiveDataisViewVisible.asLiveData().observe(viewLifecycleOwner) { isVisible -> // ...}// FlowisViewVisible.collect { isVisible -> // ...}두 코드 스니펫은 `isViewVisible`이라는 상태를 관찰하여 UI를 업데이트하는 방식에서 차이가 있습니다. 이 두 가지 접근 방식의 주요 차이점은 다음과 같습니다.`asLiveData().observe()` 사용:LiveData: Android의 생명주기 인식 데이터 홀더 클래스로, 주로 UI 컴포넌트와 데이터의 동기화를 위해 사용됩니다.생명주기 인식: `observe(viewLifecycleOwner)`를 사용하면 관찰자가 `viewLifecycleO..
-
OpenGL Basics on AndroidAndroid 2024. 5. 3. 22:58
목표OpenGL 기본개념 알기Android에서 OpenGL로 삼각형 그리기OpenGL ES란?OpenGL ES는 3차원 컴퓨터 그래픽스 API인 OpenGL(Open Graphic Library)의 임베디드 시스템을 위한 버전이다. ES가 Embaedded System을 의미한다.OpenGL은 다양한 API를 제공하며 해당 API들을 통해 점, 선, 삼각형, 사각형, 빛 등을 화면에 그릴 수 있다. 즉, OpenGL은 화면에 뭔가 그릴 수 있도록 도와주는 API들로 이루어진 라이브러리다.비슷한 API로 Windows에는 DirectX가 있다. 차이점은 OpenGL은 크로스 플랫폼을 지원한다.Vertex3차원 그래픽의 가장 원자적인 요소정점의 정보를 가지고 있는 data structurePosition을 ..
-
Dependency Injection과 Hilt 맛보기Android 2024. 5. 3. 20:38
Dependency의존성 : A가 B를 의존한다. = A가 B를 참조한다.의존대상 B가 변하면, 그것이 A에 영향을 미친다.B의 기능이 추가 또는 변경되거나 형식이 바뀌면 그 영향이 A에 미친다.Car는 Engine이 없으면 동작하지 않는다.Engine은 Car의 의존성Car가 Engine에 의존한다. = Car가 Engine을 참조한다.// Without DIclass Car { private val engine: Engine = Engine() ... ...}Car class는 engine instance 생성과 어떻게 구성하는지까지 책임을 지고 있다.SRP(단일 책임 원칙) 위반하나의 Class에 하기에는 책임이 많다.Car와 Engine은 타이트한 의존성을 갖는다.Engine에 대..
-
안드로이드 SQLite 속도 향상!Android 2013. 3. 26. 18:48
출처 : http://osh2357.blog.me/130098179373안드로이드에서 사용하는 SQLite 는 모바일에서 가볍게 사용하기에 너무 좋다. 하지만 다수의 Insert 문을 반복할때의 수행속도는 입이 쩍벌어지게 느렸는데...... 원인을 파해쳐보니 SQLite 에서는 Transaction을 사용하고 안하고의 차이가 다량 Insert 시 엄청난 시간 차이를 보여주고 있었다. 다음 사이트의 Insert Test 를 보면 이해가 되리라 -> http://www.sqlite.org/speed.html 1000 건의 record 를 Insert 했을시에SQLite 는 13.061 초MySQL 은 0.114 초가 걸린다 반면에 25000 건의 record 를 Transaction 을 이용하여 Insert..
-
Grails and Tomcat 7: Out of Memory (PermGen)Java 2013. 3. 15. 11:52
Deploying a Grails application to Tomcat 7 for the first time you may encounter the following error: java.lang.OutOfMemoryError: PermGen spaceAssumption: Windows Service To correct the problem, just adjust the default memory and Perm Gen space allocated in Tomcat 7. Start the service config tool "tomcat7w.exe: Change the Java Options: Switch to the Java tab: Change the “Initial Memory pool” to 1..
-
Error generating final archive: Debug certificate expired on ... 문제해결법Android 2013. 3. 13. 16:01
Error generating final archive: Debug certificate expired on ... 이클립스에서 안드로이드 애플리케이션 빌드 중에 이런 오류 메시지가 나오는 경우가 있다. Debug certificate가 만료되어서 발생하는 문제인데, Debug certificate는 만들어진 후 365일이 지나면 만료된다. 그러므로 만료된 Debug certificate를 새로 갱신해주면 된다. 방법은 간단하다. debug.keystore 파일을 삭제한 후, 프로젝트를 클린하면 이 debug.keystore파일 생성해준다고 모든 사이트들이 알려주나 나의 경우는 절대 다시 생성되지 않았다. 콘솔창으로 debug.keystore가 저장되있던 경로로 이동한후 아래의 명령어로 생성해준 후에야 ..
-
xml에서 include로 포함한 뷰들의 inflate여부Android 2012. 11. 13. 18:34
layout xml을 만들때 다른 xml layout을 include라는 명령어로 포함시킬수 있습니다. 반복적으로 사용되는 layout인경우 자주이렇게 합니다. 여기서 생긴궁금증 include가 포함된 xml레이아웃을 setContentView등으로 inflate를 시킨다면 include된 xml레이아웃 안의 뷰들도 inflate되어 바로 사용할 수 있을까? 정답은 가능합니다. 가령 이런경우 레퍼런스 사이트에서는 layout_textview xml안에있는 뷰들을 소스코드에서 사용하려면 위의 예제처럼 id를 주어 먼저 불러오고 사용하게 되있습니다. 가령 이런식입니다. // layout_textview를 받아온다. layout_textview를 받아온 View textView 객체는 하위 자식들을 그대로 포..