인성개발자

Programming Language/Kotlin

[Kotlin] Inline class란

인라인 클래스란? 경우에 따라 비즈니스 논리가 일부 형식 주위에 래퍼를 만드는 것이 필요하다. 그러나 추가 힙 할당으로 인해 런타임 오버헤드가 발생하고 또한 래핑된 유형이 기본 유형인 경우 기본 유형은 일반적으로 런타임에 의해 크게 최적화되는 반면 해당 래퍼는 특별한 처리를 받지 않기 때문에 성능 저하가 발생한다. 이러한 문제를 해결하기 위해서 Kotlin에서는 inline class를 제공한다. 인라인 클래스는 value-based classes의 하위 집합입니다. 이는 정체성은 존재하지 않으며 값만을 보유합니다. inline class는 생성자로 단 하나의 값만 받을 수 있다. 물론 클래스내에 프로퍼티와 함수를 정의할 수도 있다. inline class UserName(val value: String..

Programming Language/Kotlin

[Kotlin] Sealed Class 란

Sealed class란 Sealed class 및 interface는 상속에 대한 더 많은 제어를 제공하는 제한된 클래스 계층을 나타냅니다. 추상 클래스로 상속받는 자식 클래스의 종류를 제한하는 특성을 가지고 있다, 즉 컴파일러에서 Sealed class의 자식 클래스가 어떤 것이 있는지 알 수 있다는 것이다. sealed interface Error sealed class IOError(): Error class FileReadError(val file: File): IOError() class DatabaseError(val source: DataSource): IOError() object RuntimeError : Error 어떤 의미에서 Sealed class 는 Enum class와 유사하다..

BaekJoon

[백준 알고리즘] 17298번 : 오큰수 (Python) 문제 풀이

문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,00..

Programming Language/Kotlin

[Kotlin] Enum class란

Enum class 열거형 클래스는 형식이 안전한 열거형을 구현하는 것입니다. enum class Direction { NORTH, SOUTH, WEST, EAST } 내부의 각각의 상수들은 오브젝트이다. 각 열거형 상수는 개체이다. 열거형 상수는 쉼표로 구분된다. 열거형 클래스는 다음과 같이 초기화할 수 있다. enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF) } Anonymous classes 열거형 상수는 해당 메서드와 재정의 기본 메서드를 사용하여 고유한 익명 클래스를 선언할 수 있습니다. enum class ProtocolState { WAITING { override fun signal() = TALK..

Programming Language/Kotlin

[Kotlin] Data Class란

Data class 란 데이터를 보유하는 것이 주된 목적인 클래스입니다. Ex) User의 data class data class User(val name: String, val age: Int) 데이터 클래스의 충족 조건 주요 생성장에는 적어도 하나의 파라매터가 필요하다. 모든 주요 생성자 파라매터는 val 혹은 var로 지정 데이터 클래스는 추상 클래스, open 클래스, sealed클래스, inner클래스 일수 없다. 1.1버전 이후 데이터 클래스는 다른 클래스를 확장할 수 있다. 클래스에 파라매터가 없는 생성자가 필요한 경우, 모든 프로퍼티의 기본값을 지정할 필요가 있다. data class User(val name: String = "", val age: Int = 0) 컴파일러에서는 기본생성자..

BaekJoon

[백준 알고리즘] 1174번 : 줄어드는 수 (JAVA) 문제 풀이

문제 음이 아닌 정수를 십진법으로 표기했을 때, 왼쪽에서부터 자리수가 감소할 때, 그 수를 줄어드는 수라고 한다. 예를 들어, 321와 950은 줄어드는 수이고, 322와 958은 아니다. N번째로 작은 줄어드는 수를 출력하는 프로그램을 작성하시오. 만약 그러한 수가 없을 때는 -1을 출력한다. 가장 작은 줄어드는 수가 1번째 작은 줄어드는 수이다. 입력 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 N번째 작은 줄어드는 수를 출력한다. https://www.acmicpc.net/problem/1174 1174번: 줄어드는 수 음이 아닌 정수를 십진법으로 표기했을 때, 왼쪽에서부터 자리수가 감소할 때, 그 수를 줄어드는 수라고 한다. 예를 들어, 321와 950은 줄..

BaekJoon

[백준 알고리즘] 10974번 : 모든 순열 (JAVA) 문제 풀이

문제 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다. 출력 첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다. https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀이 : 순열에 관한 간단한 구현 문제였다. 순열은 코테에서 자주 쓰이니 잘 알아 두자. 내 코드 : import java.util.Scanner; public class Main { // 백준알고리즘 10974번 모든순열 static int N; sta..

BaekJoon

[백준 알고리즘] 1025번 : 제곱수 찾기 (JAVA) 문제 풀이

문제 N행 M열의 표 A가 있고, 표의 각 칸에는 숫자가 하나씩 적혀있다. 연두는 서로 다른 1개 이상의 칸을 선택하려고 하는데, 행의 번호가 선택한 순서대로 등차수열을 이루고 있어야 하고, 열의 번호도 선택한 순서대로 등차수열을 이루고 있어야 한다. 이렇게 선택한 칸에 적힌 수를 순서대로 이어붙이면 정수를 하나 만들 수 있다. 연두가 만들 수 있는 정수 중에서 가장 큰 완전 제곱수를 구해보자. 완전 제곱수란 어떤 정수를 제곱한 수이다. 입력 첫째 줄에 N, M이 주어진다. 둘째 줄부터 N개의 줄에는 표에 적힌 숫자가 1번 행부터 N번 행까지 순서대로 한 줄에 한 행씩 주어진다. 한 행에 적힌 숫자는 1번 열부터 M번 열까지 순서대로 주어지고, 공백없이 모두 붙여져 있다. 출력 첫째 줄에 연두가 만들 수..

Tenacity_Dev
'분류 전체보기' 카테고리의 글 목록 (34 Page)