1. Intent란?Intent는 Android의 컴포넌트 간 통신(IPC, Inter-Process Communication) 을 위한 메시징 객체이다. Intent를 사용하면 Activity, Service, BroadcastReceiver 등과 데이터를 주고받으며 시스템의 다양한 기능을 활용할 수 있다.Intent의 주요 기능Activity 간 전환Service 시작 및 바인딩Broadcast 메시지 전송 및 수신데이터 공유 및 전달시스템 기능 호출 (카메라, 갤러리, 전화 앱 실행 등) 2. Intent의 유형Intent는 크게 명시적(Explicit Intent) 과 암시적(Implicit Intent) 으로 구분된다.2.1 명시적 Intent (Explicit Intent)특정한 컴포넌트(Ac..
1. Recomposition(리컴포지션)이란?Recomposition(리컴포지션)은 Jetpack Compose에서 상태(State)의 변경에 따라 필요한 UI만 다시 그리는 과정을 의미한다.기존 XML 기반 View 시스템에서는 findViewById()를 통해 특정 View를 직접 변경했지만, Compose는 선언형(Declarative) 방식을 사용하여 상태 값이 변경되면 해당하는 UI 요소만 다시 렌더링(Recompose)한다.즉, Recomposition은 상태 기반 UI 업데이트의 핵심 개념이며, 이를 이해하면 불필요한 UI 업데이트를 방지하고 성능을 최적화할 수 있다. 2. Recomposition이 발생하는 원리1) Composable 함수와 상태(State)Composable 함수는 컴..
1. Jetpack Compose란?Jetpack Compose는 Android의 최신 UI 툴킷으로, 선언형(Declarative) 방식을 기반으로 UI를 구성할 수 있도록 설계되었다. 기존의 XML 기반 UI 작성 방식보다 직관적이며, 코드 양을 줄이고, 재사용성을 높일 수 있는 장점이 있다.Compose는 Kotlin 언어를 기반으로 동작하며, 보다 유연한 UI 개발이 가능하다. 특히 상태(State) 기반의 UI 렌더링 방식을 지원하여 동적인 UI를 효율적으로 관리할 수 있다. 2. Jetpack Compose의 주요 특징선언형 UI (Declarative UI)기존 XML 방식은 명령형(Imperative) 방식으로, UI 요소를 직접 조작하고 업데이트해야 했다. 하지만 Compose는 선언형 ..
문제https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1www.acmicpc.net 어떻게 풀 것인가?이 문제는 우선순위 큐(PriorityQueue)를 사용하여 효율적으로 중간값을 찾는 문제이다.기본적으로 2개의 우선순위 큐(MinHeap, MaxHeap)를 활용하면 쉽게 해결할 수 있다. MaxHeap (왼쪽 그룹)중간값을 기준으로 작거나 같은 값들을 저장.최댓값을 빠르게 구하기 위해 내림차순 정렬.PriorityQueue maxHeap = new Priori..
문제https://www.acmicpc.net/problem/1941 어떻게 풀 것인가?이 문제는 백트래킹(Backtracking) 을 이용해서 풀었다.우선 문제를 잘 읽어보면 배열의 크기와 조건이 크지 않음을 알 수 있다.즉, 브루트포스(완전 탐색) 및 백트래킹을 사용해도 시간 초과 없이 해결할 수 있다.따라서, 25명 중 7명을 선택하는 조합(combination)을 수행한 후,선택된 7명이 서로 연결되어 있는지 확인하고,최소 4명이 ‘이다솜파’(S)인지 확인하는 방식으로 접근했다. 풀면서 놓쳤던점DFS 탐색 방식의 오류단순히 DFS로 인접한 학생을 탐색하는 것이 아니라, 25명 중 7명을 조합으로 선택한 후, 그 7명이 하나의 연결된 그룹인지 확인해야 했다.즉, DFS로 직접 7명을 선택하면 모든 ..
컴퓨터에서의 실수 표현 방식컴퓨터에서 실수를 표현하는 방식에는 두 가지가 있다.고정 소수점(Fixed Point) 방식부동 소수점(Floating Point) 방식 고정 소수점(Fixed Point) 이란?고정 소수점(fixed point)은 정수를 표현하는 비트와 소수를 표현하는 비트 수를 미리 고정하여, 해당 비트만을 활용하여 실수를 표현하는 방식이다. 개념 및 원리처음 1비트는 부호(Sign)를 나타낸다. 양수는 0, 음수는 1.다음 15비트는 정수부(Integer Part)를 나타낸다.다음 16비트는 소수부(Fractional Part)를 나타낸다.정수부와 소수부의 경계를 소수점의 위치로 고정하여, 2진수로 변환된 수를 그대로 저장한다.마지막으로 남는 자리는 모두 0으로 채운다.이러한 방식으로 실..
문제https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그www.acmicpc.net 어떻게 풀 것인가?문제의 제목부터가 "최소비용 구하기" 이다. 그래서 다익스트라 최단경로 구하는 알고리즘을 사용하였다.사실 그래서 처음 접근 자체는 크게 어렵지 않았다.내 코드의 핵심은 "우선순위 큐를 활용한 다익스트라 최단 경로 탐색" 이라고 볼 수있다. 우선순위 큐를 사용하는 다익스트라 알고리즘의 시간 복잡도는 O((V + E) log V) 이다. Priori..
문제https://www.acmicpc.net/problem/11729 어떻게 풀 것인가?컴퓨터 공학부 전공자라면 자료구조 혹은 알고리즘 수업 시간에 재귀를 공부하면서 항상 자주보는 문제였을 것 이다. 나는 사실 과거에 기억에 의존하여 문제를 풀었기때문에 굉장히 쉬웠지만 그래도 한번 차근차근 문제를 뜯어보자. 우선 하노이의 탑문제를 살펴보자.일단, 하노이탑의 가장 큰 규칙은 "작은 원판 위에 큰 원판은 올 수 없다" 이다. 세 개의 기둥(A, B, C)과 여러 개의 크기가 다른 원판이 있다.처음에는 원판들이 가장 큰 것부터 가장 작은 것까지 차례대로 한 기둥(A)에 쌓여 있다.이 원판들을 다른 기둥(C)으로 모두 옮겨야 한다.단, 다음과 같은 규칙을 반드시 지켜야 한다.한 번에 하나의 원판만 이동할 수 ..