본문 바로가기

전체 글195

isEmpty, isBlank 차이 간단한 내용인데 헷갈릴 때가 있어서 정리해놓고자 한다. isEmpty- 빈 문자열("")인지 확인한다. isBlank- 빈 문자열("")이거나, 공백으로 이루어진 문자열("   ")인지 확인한다.  val str = " "println(str.isEmpty()) // falseprintln(str.isBlank()) // true val str = ""println(str.isEmpty()) // trueprintln(str.isBlank()) // true 따라서 빈 문자열인지 확인할 때 공백으로 이루어진 문자열을 포함하고 싶다면 isBlank를, 포함하고 싶지 않다면 isEmpty를 사용하면 된다 2024. 7. 27.
[Lesson 1] Binary Gap 문제 코드fun solution(N: Int): Int { var n = N val binary = StringBuffer() val sequenceList = mutableListOf() while (n != 0) { binary.append("${n % 2}") n /= 2 } binary.reverse() // println(binary.reverse()) var count = 0 for (i in binary.indices) { if (binary[i] == '1') { if (count > 0) sequenceList.add(count) // println("list: $.. 2024. 7. 26.
Kotlin을 사용하는 이유 Kotlin이란?Kotlin은 개발자 도구 전문 기업인 JetBrains에서 개발하여 2011년에 출시되고, 2016년에 최초로 1.0 버전이 발표되었다.'더 나은 Java'의 목적으로 탄생한 언어다.Kotlin의 장점가독성문법이 간결하지만 복잡한 아이디어를 표현할 수 있다.도구최상급의 도구 지원을 받을 수 있는 언어다중 패러다임명령형(imperative) 프로그래밍함수형 프로그래밍객체 지향 프로그래밍위와 같은 여러 프로그래밍 패러다임을 지원함다중 플랫폼JVM, 안드로이드, 자바 스크립트, 네이티브 바이너리와 같은 여러 타깃 플랫폼으로 컴파일할 수 있음Kotlin의 특징Java 상호 운용성코틀린은 별 다른 노력 없이 기존 자바 프로젝트에 코틀린을 통합할 수 있다.즉, 작게 코틀린 기능을 작성해서 기존 자.. 2024. 7. 26.
Android 4대 컴포넌트 안드로이드 앱 아키텍처의 가장 큰 특징은 컴포넌트 기반이라는 것 컴포넌트(Component)란?앱의 구성 단위로, 컴포넌트 여러 개를 조합해 하나의 앱을 만듦안드로이드 앱에서 컴포넌트는 클래스의 모습을 하고 있음그렇다고 앱에서 만든 모든 클래스가 컴포넌트는 아니다 안드로이드 컴포넌트 종류- Activity- Service- Content Provider- Broadcast Receiver 각각의 컴포넌트는 고유의 기능을 가지고 있고, 인텐트를 통해 서로 상호작용이 가능하다하나씩 알아보자! Activity사용자와 상호작용하는 진입점으로, 사용자 인터페이스가 있는 단일 화면을 말함액티비티는 시스템과 앱의 주요 상호작용을 돕는 역할을 함컴포넌트끼리는 인텐트를 통해 상호작용하기 때문에, 인텐트를 통해 다른 액티.. 2024. 7. 26.
Kotlin Mutable, Immutable List Kotlin에는 두 가지 유형의 List가 있다1. 읽기 목적으로 사용되는 Immutable List(불변)2. 데이터를 쓸 수 있는 mutable List(가변) 잠깐 가변성과 불변성에 대해 알아보자가변성(Mutability)가변성은 상태를 가지는 경우를 말하는데, 아래와 같은 문제가 발생할 수 있다.- 멀티스레드에서 값을 보장하지 못함- 값의 예측이 어렵고 변경에 있어서 위험함- 테스트와 디버깅이 어려움- 상태 변경 발생 시 처리 필요 불변성(Immutability)함수형 프로그래밍에서는 불변성을 중요하게 생각함.Kotlin에서는 불변성을 강제하지는 않으나, 불변성을 권장하고 있음불변성이란, 상태를 변경하지 않는 것즉, 메모리의 특정 공간에 저장된 값을 변경하지 않는 것을 말함 불변성은 생성 시점 이.. 2024. 7. 26.
#7568 덩치 문제 코드fun main() = with(System.`in`.bufferedReader()) { val n = readLine().toInt() val group: MutableList = mutableListOf() repeat(n) { val (h, w) = readLine().split(" ").map { it.toInt() } group.add(Person(h, w)) } group.forEach { for (p in group) { if (it.height  풀이처음엔 정렬로 풀어야 하나 싶었다.근데 키와 몸무게 중 하나만 큰 경우엔 어떤 방식으로 정렬해야할지 모르겠더라N이 생각보다 작길래 그냥 이중 for문으.. 2024. 7. 26.