본문 바로가기
반응형

코틀린6

[Kotlin] Data Class 이해하기 Data Class는 보통 네트워크 통신이나 DB 모델을 만들 때 주로 사용합니다. 오늘은 이 Data Class가 무엇이고 일반적인 Class랑 무슨 차이가 있는지 알아보겠습니다. Data Class란? 데이터 클래스는 데이터를 보관하기 위해 만들어진 클래스입니다. 데이터 클래스는 toString(), hashCode(), equals(), copy()메소드를 자동적으로 만들어줍니다. 아래와 같이 정의할 수 있습니다. data class User(val name: String, val age: Int) Data Class 특징 ⑴ 데이터 클래스의 생성자는 1개 이상의 프로퍼티를 선언해야 한다. ⑵ 데이터 클래스 앞에 abstract, open, sealed, inner를 붙일 수 없다. ⑶ 데이터 클래.. 2022. 5. 23.
[알고리즘] DFS(Depth-First Search) - 깊이 우선 탐색 DFS는 그래프(Graph)를 탐색하는 방법입니다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조를 말합니다. 코딩 테스트에서 BFS와 단골로 나오는 개념입니다. DFS 깊이 우선 탐색(Depth-First Search) 정의 : 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법을 말합니다. 자기 자신을 호출하는 순환 알고리즘이기 때문에 재귀 함수나 스택을 가지고 구현합니다. 이때 주의 사항은 어떤 노드를 방문했었는지 여부를 반드시 검사해야 합니다. 📘 Pseudo Code /** 1. 노드이 갯수 만큼 방문 여부를 위한 배열 생성 후 false로 초기화 (visit 배열) 2. 루트 노드부.. 2021. 12. 1.
[알고리즘 / Kotlin] 프로그래머스 - (8주차)최소직사각형 최소직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000(=80 x 50)입니다. 모든 명함의 가로 길이와 세.. 2021. 10. 1.
[알고리즘 / Kotlin] 프로그래머스 - 위장(해시) 위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길이는 1 이상 20 이.. 2021. 9. 3.
[Kotlin] Kotlin Collection 관련 유용한 함수 Android 개발을 하다 보면 필연적으로 collection이라는 자료구조를 많이 사용하게 됩니다. collection의 종류로는 List , Map, Set 이 있습니다. Kotlin의 Collection은 기본적으로 Mutable과 Immutable을 별개로 지원합니다. Mutable : 생성하면 추가, 삭제가 가능 Immutable : 생성하면 수정 불가 오늘은 이 collection에서 사용할 수 있는 유용한 함수들에 대해 정리해보려고 합니다. 🟩 sort collection의 각 요소들을 정렬해줍니다. fun main(args: Array) { val a: MutableList = mutableListOf(3, 2, 1) a.sort() //a.sorted() 는 새로운 collection을 .. 2021. 8. 28.
[Android] 스마트폰 내장 DB를 사용하기 위한 Room 2탄 🔶 Repository와 MVVM에서 사용 이제 우리가 만든 Room DB를 실제적으로 사용할 수 있게 Repository를 만들어 봅시다. 이때 주의할 점은 Room DB가 메인 스레드에서 접근하려면 하면 에러가 납니다. 그래서 별도의 스레드를 사용해야 합니다. 그래서 비동기 처리를 위해 코루틴을 적용했습니다. class UserRepository(application: Application) { private val userDatabase = UserDatabase.getInstance(application)!! private val userDao: UserDao = contactDatabase.userDao() private val users: LiveData = userDao.getAll() fu.. 2021. 8. 13.
반응형

loading