본문 바로가기

전체 글

(60)
[Jetpack Compose] 9. Navigation - 화면 전환 아래 영상을 보고 정리한 게시글입니다. https://www.youtube.com/watch?v=sHyQV3Jz_fA&list=PLxTmPHxRH3VV8lJq8WSlBAhmV52O2Lu7n&index=7 gradle 화면 전환을 할 때 Navigation을 사용함 버튼을 통해 화면 전환하는 예제를 해볼 예정 module 수준의 build.gradle에 dependency를 추가해야 함 implementation "androidx.navigation:navigation-compose:2.4.0" NavController Navigation을 순조롭게 도와주는 Composable 전환할 화면을 NavHost 안에 넣어주면 됨 @Preview(showBackground = true) @Composable fu..
[Jetpack Compose] 8. SnackBar, 코루틴 아래 영상을 보고 정리한 게시글입니다. https://www.youtube.com/watch?v=0Udm6oKFj-o&list=PLxTmPHxRH3VV8lJq8WSlBAhmV52O2Lu7n&index=6 SnackBar 팝업 메시지를 띄울 때 사용함 ToastMessage와 비슷함 Scaffold 머티리얼 디자인을 사용할 때는 Scaffold로 감싸서 사용함 머티리얼 디자인 SnackBar FloatingButton and so on... 코루틴 showSnackBar 함수를 통해 snackBar를 나타냄 하지만 showSnackBar 함수는 suspend 함수임 => 코루틴에서 실행을 해야 함 composable 안에서는 아주 간단하게 scope를 정의해서 쓸 수 있음 val scaffoldState ..
[Jetpack Compose] 7. TextField, 구조 분해 아래 영상을 보고 정리한 게시글입니다. https://www.youtube.com/watch?v=0Udm6oKFj-o&list=PLxTmPHxRH3VV8lJq8WSlBAhmV52O2Lu7n&index=6 TextField 입력을 받을 수 있음 기존의 editText와 유사함 속성 value : 내가 입력한 값으로 String이 들어감 onValueChange : value가 바뀔 때 호출되는 함수 @Preview(showBackground = true) @Composable fun TestView() { Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignm..
[Jetpack Compose] 6. State 아래 영상을 보고 정리한 게시글입니다. https://www.youtube.com/watch?v=dAwnZfZPP48&list=PLxTmPHxRH3VV8lJq8WSlBAhmV52O2Lu7n&index=5 IconButton을 클릴할 때마다 동작을 부여하고 싶음 (=> 클릭할 때마다 하트가 차거나 비거나 번갈아 나오도록 할 예정) State Compose는 State 기반으로 동작한다 원래는 boolean 변수 만들어서 값을 바꿔줘가면 되지만 jetpack compose는 state를 사용해서 깔끔하게 UI를 그릴 수 있음 state가 변경될 때마다 그에 해당하는 부분만 UI를 새로 그림 val isFavorite = remember { mutableStateOf(false) } IconButton(onC..
[Jetpack Compose] 5. Card, Image, Icon 아래 영상을 보고 정리한 게시글입니다. https://www.youtube.com/watch?v=dAwnZfZPP48&list=PLxTmPHxRH3VV8lJq8WSlBAhmV52O2Lu7n&index=5 Card 기존의 cardView와 비슷 fillMaxWidth() : 화면의 가로를 꽉 채움 fillMaxWidth(0.5f) : 화면의 가로를 절반만 채움 RoundedCornerShape : 모서리 둥글게 Card( modifier = Modifier .fillMaxWidth(0.5f) .padding(16.dp), shape = RoundedCornerShape(8.dp), elevation = 5.dp ) 사진 Image Composable 객체 사용 painter : drawable에 들어있는 ..
곱셈의 역원 나머지 연산 modular를 씌울 때 사칙연산 중 다음이 성립합니다. 더하기 : 성립함 빼기 : 성립함 곱하기 : 성립함 나누기 : 성립하지 않음 나눗셈이 성립하기 위해서는 곱셈의 역원을 구해서 곱해줘야 합니다. 정의 어떤 정수 a가 주어질 때, a * x % N == 1인 정수 x를 찾는 문제 +) a와 N이 서로소 일 때만 x가 존재 example) N = 11, a = 3 일 때 => 곱셈의 역원 x = 4 3 * 4 % 11 = 1 풀이 1) 반복문 1부터 N-1까지 반복문으로 찾아본다 O(N) #include int inverseMul(int N, int a) { for (int i = 1; i < N; ++i) { if (a * i % N == 1) return i; } return -1; }..
확장 유클리드 알고리즘 아래 영상을 참고해 작성했습니다. https://www.youtube.com/watch?v=PmwLXveLtqc 정의 유클리드 호제법을 확장한 알고리즘 입니다. https://kdr06006.tistory.com/21 유클리드 호제법 아래 영상을 참고해 작성했습니다. https://www.youtube.com/watch?v=Obs-HC5j5bI 정의 자연수 a, b가 주어질 때 a와 b의 최대 공약수 (=gcd(a, b))를 구하는 방법 과정 gcd(A, B) = gcd(B, A % B)를 이용해 재귀적으로 구 kdr06006.tistory.com ax + by = c c의 값이 gcd(a, b)의 배수일 때만 (x, y)가 정수해를 갖습니다. 즉, 확장 유클리드 알고리즘은 위의 식을 만족하는 정수해 (..
유클리드 호제법 아래 영상을 참고해 작성했습니다. https://www.youtube.com/watch?v=Obs-HC5j5bI 정의 자연수 a, b가 주어질 때 a와 b의 최대 공약수 (=gcd(a, b))를 구하는 방법 과정 gcd(A, B) = gcd(B, A % B)를 이용해 재귀적으로 구할 수 있습니다. gcd(12345, 123)을 구해봅시다. (B == 0이 될 때 A 값이 정답임) 증명 위의 영상으로 대체하겠습니다. 코드 매번 큰 비트가 사라지기 때문에 O(max(log a, log b)) 만에 gcd(a, b)를 구할 수 있습니다. #include int gcd(int a, int b) { return b ? gcd(b, a % b) : a; } int main() { printf("%d\n", gcd(..