목록코딩 (7)
맨땅에 코딩
Datas🍀 앱에서 필요한 정보를 효율적으로 관리하고 사용하기 위해 정의했다. 각 클래스는 적절한 변수를 통해 필요한 정보를 저장하며, 이를 통해 정보를 안전하게 관리하고, 필요할 때 쉽게 접근할 수 있다. 이들은 데이터를 저장하고 전달하는 데 사용된다. package com.example.forestlearning //사용자 데이터 클래스 data class UserData( var name: String? = null, var email: String? = null, var uId: String? = null) //강의 데이터 클래스 data class CourseData( var courseName: String? = null, var teacherName: String? = null, var da..
FruitshowRepository🍀 Firebase Realtime Database에서 데이터를 불러와서 이를 LiveData로 변환하는 역할을 한다. 이를 통해 ViewModel에서 이 LiveData를 관찰하여 데이터가 변경될 때마다 UI를 업데이트할 수 있다. 이렇게 하면 데이터를 가져오는 로직과 UI 로직을 분리하여 코드의 가독성과 유지보수성을 향상시킬 수 있다. package com.example.forestlearning.repository import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.example.forestlearning.FruitShowData import com.google..
TimetableRepository🍀 Firebase Realtime Database를 통해 사용자의 강의 데이터를 가져오고, 새로운 강의를 추가하고, 기존 강의를 삭제하는 기능을 제공한다. 이를 통해 앱의 다른 부분에서 강의 데이터를 쉽게 관리할 수 있다. package com.example.forestlearning.repository import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.example.forestlearning.CourseData import com.google.firebase.auth.FirebaseAuth import com.google.firebase.database.Data..
UserRepository🍀 Firebase Realtime Database를 통해 사용자 정보를 가져오고, 사용자 정보를 데이터베이스에 저장하는 기능을 제공한다. 이를 통해 앱의 다른 부분에서 사용자 정보를 쉽게 관리할 수 있다. package com.example.forestlearning.repository import androidx.lifecycle.MutableLiveData import com.example.forestlearning.UserData import com.google.firebase.database.DataSnapshot import com.google.firebase.database.DatabaseError import com.google.firebase.database.Va..
IntroActivity🍀 앱이 실행되면 먼저 시작 화면을 3초 동안 보여주고, 그 후에 메인 화면(HostActivity)로 전환하는 기능을 구현하였다. 앱의 인트로 화면을 보여주며 사용자에게 앱이 로딩 중임을 알린다. package com.example.forestlearningimport android.content.Intentimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.os.Handlerclass IntroActivity : AppCompatActivity() { //액티비티가 생성될 때 호출되는 매소드 override fun onCreate(savedInstanceState:..
어떤 문제일까?https://www.acmicpc.net/problem/1003 문제에서 다음과 같이 피보나치 함수에 대한 소스를 제공해주었다int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); }} 문제를 푸는데 아무 쓸모도 없었다그냥 0과 1의 개수를 구하기 위해 피보나치로 풀어야하고, 시간복잡도 때문에 DP를 써야하는구나를 알 수 있었다.엥 지금 다시 글을 쓰면서 생각해보니 쓸모가 있었다 피보나치 함..
어떤 문제일까?https://www.acmicpc.net/problem/1002 문제에서 조규현과 백승환의 위치가 좌표 (𝑥1, 𝑦1), (𝑥2, 𝑦2)로 주어지고, 그로부터 류재명과의 거리가 𝑟1과 𝑟2로 주어지며, 예제 출력의 형태가 2, 1, 0이라는 것을 우리가 직관적으로 봤을 때, 두 원의 교점의 개수를 구하는 문제와 같다는 것을 알 수 있다. 두 원의 교점의 개수 구하기경우의 수는 총 4가지로, 다음과 같다. 문제에서 주어지는 A (𝑥1, 𝑦1), B(𝑥2, 𝑦2), 𝑟1, 𝑟2를 기준으로 설명하겠다.A와 B 두 점 사이의 거리를 D라고 하겠다. 1. 두 점에서 만난다.D 2. 한 점에서 접한다.D = 𝑟1 + 𝑟2 또는 D = | 𝑟1 - 𝑟2 | 3. 만..