참조
·
개발/개념 및 기법
안드로이드 프로젝트를 만들면서 문제점을 하나 만났다. 현재 화면에서 보여주고 있는 ListA가 있다. 그리고 서버와 통신해서 데이터를 받아와 ListA를 누적하는 ListB가 있다. 순서1 : ListA(0개) -> ListB(20개) 순서1 : ListA(20개) -> ListB(40개) ListA는 최초에 0개이다. ListA는 ListB보다 언제나 작다. 아이템의 개수를 비교하여 차이나는 아이템만큼 화면에 띄워진 리스트를 업데이트 하려고 한다. 그런데 ListA가 ListB와 언제나 똑같다면? 그래서 리스트가 가진 아이템의 차이를 화면이 파악하지 못한다면? 이유는 참조에 있다. ListA가 현재 띄워져있는 리스트이자, 화면을 띄우기 위한 어댑터에 연결되어 있는 리스트이다. ListA에 변경된 Lis..
[Kotlin]Typealias VS Inline Class
·
프로그래밍 언어/Kotlin 기초
1. typealias 변수들에 대한 새로운 별명을 지어주고, 짧게 사용 가능 typealias를 클래스 혹은 함수 내에서 정의하는 것은 불가능하다 typealias는 누구나 접근할 수 있는 Top Level 변수이다 동일한 type을 여러 개의 이름*으로 사용할 수 있다. ex1-1. typealias NodeSet = Set ex1-2. typealias FileTable = MutableMap ex2-1. typealias MyHandler = (Int, String, Any) > Uit ex2-3. typealias Predicate = (T) -> Boolean PermissionDialog 클래스를 PermissionDialogCallback으로 정의 (PermissionDialog) -> U..
[Kotlin]Deligation
·
프로그래밍 언어/Kotlin 기초
Deligation Pattern 참고링크 Deligation Pattern(위임 패턴)이란, 객체가 상송과 동일하게 코드 재사용을 할 수 있도록하는 객체지향 디자인 패턴이다. 예제소스 (kotlin) class Rectangle (val width: Int, val height: Int) { fun area() = width * height } class Window (val bounds: Rectangle) { // Deligation fun aread() = bounds.area() } 코틀린에서는 Deligation에 대한 특별한 기능이 내장되어 있어 다음과 같이 작성할 수 있다. interface ClosedShape { fun area() : Int } class Rectangle (val w..
[프로그래머스/Kotlin]Level2 - N개의 최소공배수
·
프로그래머스/Kotlin | Level2
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입..
[Kotlin]tailrec(꼬리재귀)
·
프로그래밍 언어/Kotlin 기초
tailrec이란? tailrec은 꼬리재귀(tail recursive)라는 의미로, 추가적인 연산이 없이 자신 스스로 재귀적으로 호출하다가 어떤 값을 리턴하는 함수를 의미 자신만 반복적으로 호출하는 재귀함수(tailrec)는 while과 같이 루프를 사용하는 코드로 변환이 가능함. 재귀함수가 호출되면서 소비되는 스택을 아낄 수 있음 (스택이 각 중간 재귀 상태를 추적할 필요가 없음) 루프는 동일한 결과를 출력하면서 재귀함수보다 더 적은 자원을 사용 재귀함수와 꼬리재귀 팩토리얼을 재귀함수로 구현해보자! fun factorial(n: Int): Int { return when (n) { 1 -> n else -> n * factorial(n-1) // 재귀 호출 } } 재귀함수를 꼬리재귀로 작성해보자! t..
뿌꾸 빵
개발새발 안드로그