Uknow's Lab.
article thumbnail
Kotlin에서의 Setter를 다루는 방법
언어/Kotlin 2024. 1. 30. 02:22

코틀린 클래스의 생성자와 getter, setter public class Member { private String name; private int age; public Member(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 자바에서 데이터를 담기 위한 클래스를 작성할 때, name, age 라는 두 개의 필드만 존재하..

article thumbnail
코틀린에서는 왜 더 큰 타입으로 자동변환되지 않을까?
언어/Kotlin 2023. 10. 16. 18:46

현재 코틀린을 쓰는 분들은 아마도 자바에서 넘어오신 분들이 많을 것 같습니다. 아무래도 같은 JVM 계열의 형제 언어이고, 상호 운용이 가능하고, 여러 특징들을 공유하니까요. 저도 자바 개발자였기에, 다른 언어에 비해 상대적으로 코틀린은 쉽게 배울 수 있었던 것 같습니다. 하지만 자바 개발을 하다가 오신 분들이라면 다소 당황하게 되는 포인트가 하나 있을텐데, 바로 더 넓은 범위의 타입으로 자동으로 변환되지 않는다는 점 입니다. 자바에서는 별 문제 없이 Int 형 변수를 Long 형에 넣어주면, Int -> Long으로 자동으로 승격시켜주는 것에 익숙했기에 조금 의아합니다. 어째서 자동으로 변환해주지 않는 것일까요? 자바의 Wrapper 클래스를 떠올려보면 쉽게 이해할 수 있습니다. 자바의 int, lon..

article thumbnail
코틀린의 반올림 방식 : 오사오입
언어/Kotlin 2023. 6. 14. 16:39

kotlin.math.round()... 뭔가 이상한데? https://uknowblog.tistory.com/337 [백준 18110번] [Kotlin] solved.ac https://www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대 uknowblog.tistory.com 백준 18110번. solved.ac를 풀면서 한 가지 문제를 만났습니다. 로직 구현 자체는 꽤 간단하고, 딱히 오류도 없는 것 같은데 자꾸 틀렸습니다를 받았기에, 왜지..? 곰곰히 생각하다가, 파이썬에서도 반올림 방식(오..

article thumbnail
[Kotlin/코틀린] 여러 조건을 기준으로 정렬하기
언어/Kotlin 2023. 5. 21. 02:14

개발을 하다보면 간혹가다가 배열 혹은 리스트를 정렬할 때, 여러 프로퍼티를 기준으로 정렬을 해야할 때가 있습니다. 아래와 같이 이름, 나이, 키, 몸무게를 프로퍼티로 가지는 Person 클래스가 있습니다. class Person(val name: String, val age: Int, val height: Int, val weight: Int) Person 클래스의 배열도 있고요. val list = arrayOf( Person("홍길동", 20, 170, 60), Person("전우치", 30, 180, 70), Person("사스케", 40, 160, 50), Person("나루토", 50, 175, 65), ) 그렇다면, 위 사람들을 나이 순서로 정렬하려면 어떻게 해야 할까요? list.sortBy..

article thumbnail
자바의 StringBuilder 개행문자 삽입방법 - append(str + "\n") vs append(str).append("\n")
언어/Kotlin 2023. 2. 1. 23:51

https://uknowblog.tistory.com/157 [백준 15688번] [Java] 수 정렬하기 5 https://www.acmicpc.net/problem/15688 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정 uknowblog.tistory.com 백준 15688번, 수 정렬하기 5 문제를 풀다가 미처 생각하지 못했던 부분을 하나 알게되었습니다. StringBuilder의 개행문자 추가 - sb.append(str + "\n") VS sb.append(str).append("\n") // 통과한 코드 import java.io.Buff..

article thumbnail
[Kotlin] BigDecimal을 사용하여 매우 큰 수, 소숫점 처리하기
언어/Kotlin 2022. 12. 21. 00:34

fun main() { val n1 = 90.15f val n2 = 30.05f println(n1 / n2) } Java와 Kotlin으로 개발하는 개발자들은 소숫점을 다룰 때 골칫덩어리인 부분이 하나 있습니다. 바로 부동소숫점 오류로 인해 소숫점이 제대로 표현되지 않을 때지요. double은 float형에 비해 조금 덜하나, 부동소숫점 오류에서 완전히 자유롭진 못합니다. 또, 매우 큰 수를 다룰 때에도 자료형의 최대 / 최소 값을 넘어버리는 경우도 있습니다. 이럴때 필요한게 바로 BigDecimal 입니다. BigDecimal 이란? Decimal은 흔히 십진법, 혹은 소수라는 의미를 가지고 있습니다. 앞에 Big이 붙은 것에서 알 수 있듯이 자바 혹은 코틀린에서 큰 수를 다룰 때, 혹은 소숫점을 다..

article thumbnail
[Kotlin] Jsoup와 크롤링으로 백준 푼 문제 중 포스팅하지 않은 문제 추려내기
언어/Kotlin 2022. 11. 23. 13:03

새롭게 푼 문제는 블로그에 꼬박꼬박 올리려 하고 있으나, 제가 블로그를 좀 늦게 시작했다 보니, 기존에 푼 문제는 포스팅하지 않아, 최근에 기존에 푼 문제도 하나씩 포스팅을 하고 있습니다. 그런데, 맞은 문제들 중에서 포스팅하지 않은 문제를 찾으려니, 백준 문제 제목 복사 - 블로그에서 검색 - 없으면 포스팅, 있으면 처음으로 이동 위 작업을 하나씩 하려다 보니 너무 귀찮은 겁니다...ㅠ 그래서 백준에 있는 문제 리스트와 블로그에 포스팅한 문제 리스트를 갖고와 서로 비교한 후, 백준에서 푼 문제 중 블로그에 포스팅하지 않은 문제만 필터링하고자, IDE를 키고 코드를 적어나갔습니다. 크롤링(Crawing)? 크롤링(Crawing), 혹은 스크래핑(Scraping)은 웹 페이지의 내용을 가져와 원하는 내용을..

article thumbnail
[Kotlin] 배열 사용법 정리
언어/Kotlin 2022. 2. 16. 00:24

var arr1 = Array(3, { Array(3, {0}) }) var arr2 = arrayOf(arrayOf(1, 2, 3), arrayOf(4, 5, 6)) 코틀린 배열의 첫 인상 Java를 주로 사용하던 저로써는 코틀린의 배열은 꽤 낯설었습니다. Java에서는 배열을 생성할 때 int arr[] = new int[3]; 과 같이 어찌보면 간단하게 선언할 수 있는데, 코틀린의 경우 배열을 생성하는 방법도 여러가지 인데다가, 생성 방식 역시 독특함 그 자체라 느꼈습니다. 코틀린의 배열을 좀 더 자유롭고 능숙하게 다를 수 있도록 이 글을 작성하며 배열 사용법을 정리해보았습니다. 코틀린의 배열 선언 방법 1) arrayOf() val arr:Array = arrayOf(1,2,3) val arr2:..