전체 글195 Kotlin 널 안정성(Null Safety) 코틀린 언어의 장점에서 코틀린은 널 안정성을 제공한다고 했는데, 그 이유에 대해서 정리해보려고 한다.코틀린 공식 문서 참고 1. Nullable types, non-nullable typesvar a: String = "abc"var b: String? = "abc"val al = a.lengthval bl = b.length // error -> variable 'b' can be null코틀린에선 변수를 선언할 때 null을 가질 수 있는 타입과 null을 가질 수 없는 타입을 따로 지정해줄 수 있다.b와 같이 nullable 타입으로 선언된 경우 에러가 발생한다. b의 메소드나 프로퍼티에 접근하기 위해선 어떻게 해야 할까? 2. 조건문에서 null 확인val b: String? = "Kotlin"i.. 2024. 9. 12. Kotlin backing field 코틀린 공식 문서 참고 Propertyvar [: ] [= ] [] []initializer와 getter, setter는 옵션임코틀린에서는 프로퍼티에 대한 기본 접근자 메서드(getter, setter)를 자동으로 생성해줌 backing field란?backing field는 프로퍼티의 값을 메모리에 저장하기 위해 사용되는 필드코틀린은 프로퍼티에 backing field가 필요하면 자동으로 생성해줌 자동으로 backing field가 생성되는 경우코틀린이 backing field를 자동으로 생성해주는 경우는 아래와 같다.1. 적어도 하나의 접근자(getter, setter)가 기본 구현을 사용할 때 만약 프로퍼티의 getter, setter가 기본 구현을 사용한다면, 자동으로 backing.. 2024. 9. 12. # 15486 퇴사 2 # 문제 # 코드import kotlin.math.maxfun main() = with(System.`in`.bufferedReader()) { val n = readLine().toInt() val dp = IntArray(n + 1) repeat(n) { i -> val (t, p) = readLine().split(' ').map { it.toInt() } if (i + t # 풀이 처음에 작성한 코드는 아래 코드였다.import kotlin.math.maxfun main() = with(System.`in`.bufferedReader()) { val n = readLine().toInt() val counsel = Array(n + 1) { .. 2024. 9. 4. Fragment FragmentFragment(프래그먼트)는 앱 UI의 재사용 가능한 부분을 나타냄.자체 레이아웃을 정의 및 관리자체 라이프사이클(생명주기)를 보유자체 입력 이벤트를 처리 가능단, 단독으로 실행 불가하기 때문에 액티비티 또는 다른 프래그먼트에서 호스팅해야 함 모듈성프래그먼트는 UI를 개별 청크로 분할할 수 있도록 하여 액티비티의 UI에 모듈성과 재사용성을 제공함.즉, 액티비티엔 Navigation 창과 같은 전역 요소를 배치하고, 프래그먼트는 단일 화면이나 화면의 일부의 UI를 정의하고 관리하는 역할 프래그먼트를 사용하면 런타임 시 액티비티의 모양을 더 쉽게 수정할 수 있음액티비티가 생명주기 STARTED 이상의 상태에 있는 동안 프래그먼트를 추가, 교체, 삭제할 수 있음이런 변경 사항을 백스택에 보관할.. 2024. 8. 24. #17070 파이프 옮기기 1 문제 코드enum class Direction { HORIZONTAL, VERTICAL, DIAGONAL}fun main() = with(System.`in`.bufferedReader()) { val n = readLine().toInt() val house = Array(n) { IntArray(n) } var count = 0 repeat(n) { i -> house[i] = readLine().split(' ').map { it.toInt() }.toIntArray() } fun dfs(h: Int, v: Int, prevDir: Direction) { if (h >= n || v >= n || house[h][v] == 1) retu.. 2024. 8. 23. #1806 부분 합 문제 코드import kotlin.math.minfun main() = with(System.`in`.bufferedReader()) { val (n, s) = readLine().split(' ').map { it.toInt() } val seq = readLine().split(' ').map { it.toInt() } var min = Int.MAX_VALUE var start = 0 var end = 0 var sum = 0 while (end = s) { min = min(min, end - start) sum -= seq[start] start++ } else { i.. 2024. 8. 15. 이전 1 2 3 4 ··· 33 다음