본문 바로가기

분류 전체보기37

[Kotlin] Sealed Class 탄생배경 기존 Enum class의 한계 상태 정의는 가능 하지만 상태에 따른 값을 넘겨주거나 넘겨주더라도 동일한 자료형만 넘길 수 있음 기존 Abstract class와 Kotlin when문과의 부적합성 Abstract class로 상태들을 하나로 묶어줄 경우 Enum class의 한계를 해결할 수 있음 그러나 Kotlin에서 when문을 사용하여 abstract class의 상태에 따라 분기할 때 compiler의 불안정 발생 abstract class만으로 모든 경우를 해결할 수 없고, else -> 분기가 필요로 함 Sealed class의 특징 Enum class와 Abstract class로 정의할 때 문제점을 해결한 추상 클래스 추상 클래스이지만 제한된 클래스 계층구조를 가짐 상속된 클래스.. 2024. 2. 23.
프로그래머스 - 피자나눠먹기(2) [Kotlin] 문제 설명 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 제한 사항 1 ≤ n ≤ 100 접근 방법 해당 문제는 최소공배수를 구해서 6으로 나누면 되겠다고 생각했다. 아직 알린이인 나는 최소공배수를 어떻게 구해야할지 한참을 고민하다가 최소공배수 공식을 찾게 된다... 코드로 최소공배수를 구하는 방법은 최대공약수를 구하여 계산하는 방법인데 최대공약수는 유클리드 호제법을 이용하는 것이 효율적이다. 그 이유는 시간복잡도에서 찾을 수 있다. 최대공약수를 구하는 일반적인 방법으로 2부터 .. 2023. 5. 10.
BOJ(1085) - Kotlin 문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 제한 1 ≤ w, h ≤ 1,000 1 ≤ x ≤ w-1 1 ≤ y ≤ h-1 x, y, w, h는 정수 나의 접근방법 (x,y)가 왼쪽(x-0)이나 오른쪽(w-x)에 가까운지 혹은 아래쪽(y-0)이나 위쪽(h-y)에 가까운지를 보고 최솟값을 출력하도록 했다. 코드 /* 직사각형에서 탈출 */ import java.lang.Integer.min import java.util.Scanner fu.. 2022. 8. 16.
[Kotlin Android] View 객체 가져오기(2) - ViewBinding 포스팅을 한지 벌써 한달이 넘어버렸네요,,,ㅎㅎㅎ 프로젝트하랴 도중에 또 취업이 되면서 현생이 바빠 포스팅에 신경을 못썼습니다... 이제 주말에는 하루에 하나씩 꼭 올려보도록 하겠습니다! (쌓여있는 소재만 포스팅해도 10주는 거뜬하겠네요🤣🤣) 지난 포스팅에 이어서 (벌써 한달의 시간이 흘렀네요,,,) 오늘은 예고했던대로 ViewBinding에 대해 알아보도록 하겠습니다. 지난 포스팅이 궁금하신 분은 여기를 클릭하시면 보실 수 있습니다. 지난 포스팅에서 이야기했던 것처럼 kotlin-extension은 다음과 같은 이유 때문에 21년에 Deprecated 되었습니다. RecylcerView에서는 여전히 findViewById()를 내부적으로 사용하고 있다. 개발자가 실수로 다른 레이아웃의 동일한 id를 가.. 2022. 8. 13.