
코틀린 클래스의 생성자와 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 라는 두 개의 필드만 존재하..

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

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를 풀면서 한 가지 문제를 만났습니다. 로직 구현 자체는 꽤 간단하고, 딱히 오류도 없는 것 같은데 자꾸 틀렸습니다를 받았기에, 왜지..? 곰곰히 생각하다가, 파이썬에서도 반올림 방식(오..

개발을 하다보면 간혹가다가 배열 혹은 리스트를 정렬할 때, 여러 프로퍼티를 기준으로 정렬을 해야할 때가 있습니다. 아래와 같이 이름, 나이, 키, 몸무게를 프로퍼티로 가지는 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..

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..

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

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

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:..