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
[자바] Swing과 DFS로 미로 생성기 만들기
언어/Java 2023. 7. 30. 01:57

https://uknowblog.tistory.com/364 [알고리즘] 그래프 탐색 - 깊이 우선 탐색(DFS)와 너비 우선 탐색(BFS) 그래프 탐색 정점(Node, Vertex)과 간선(Edge)로 이루어진 그래프. 이 그래프를 탐색하는 방법에는 대표적으로 두 가지 방법이 있습니다. 깊이 우선 탐색(DFS, Depth-First Search)와 너비 우선 탐색(BFS, Bread uknowblog.tistory.com 위 DFS/BFS 글을 쓰기 위해 자료조사를 하고 있을 때 였습니다. DFS의 예시로 좋은게 뭐가 있을까 찾던 중에 한 충격적인 영상을 보게 되었습니다. https://www.youtube.com/watch?v=0kaHIfrB3T4&ab_channel=DaveStephens DFS를..

article thumbnail
[자바] for, while문에 라벨링 붙이기
언어/Java 2023. 7. 19. 00:40

위와 같은 이중 for문이 있습니다. 위 코드에서 break문은 어떤 반복문을 탈출할까요? 가장 가까운 반목문인 안쪽 반복문 입니다. 하지만, j가 5가 될때 두 반복문 모두 탈출하고 싶다면 어떻게 해야 할까요? for문 바깥쪽, 혹은 첫 번째 for문 안쪽에 flag 변수를 두고, j == 5가 됬을 때, flag를 true로 바꿈으로써 두 반복문을 모두 탈출할 수 있습니다. 하지만 별도의 flag를 두어 관리하는게 조금 번거로워 방법을 찾아보던 중, for문에 라벨링을 붙이는 방법을 알게 되었습니다. 바깥쪽 for문에 outer라는 이름으로 라벨링을 붙여주고, 안쪽 for문에서 해당 반복문에 break를 걸 수 있게 되었습니다. 바깥쪽 반복문을 탈출하므로 안쪽 반복문 역시 자연스레 탈출하게 됩니다. ..

article thumbnail
상속과 자바 Stack 클래스의 문제점
언어/Java 2023. 6. 20. 17:34

Stack 스택이란 LIFO(Last In Fist Out)를 지원하는 자료구조로써, 가장 나중에 들어간 것이 가장 빨리 나오는 형태입니다. 후입 선출이라고도 하죠. 이는 접시처럼, 가장 위에 있는 접시(가장 나중에 쌓은 접시) 부터 꺼내야 하는 것과 비슷합니다. Ctrl + Z나 브라우저 뒤로가기 버튼 등도 대표적인 예시입니다. 자바의 Stack 클래스 실행결과 : 3, 2, 1 (개행문자 생략) 꽤 많이 사용되는 자료구조인 만큼, 자바의 표준 라이브러리에서도 Stack을 이미 지원하고 있습니다. push로 stack에 데이터를 넣고, pop을 사용해 가장 최근의 데이터부터 꺼낼 수 있습니다. Stack은 push를 통해 데이터를 집어넣는구나! 근데 add는 뭐지? 스택에 데이터를 넣는 메소드는 pus..

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
자바, 코틀린을 위한 인텔리제이(Intellij IDEA) 설치방법
언어/Java 2023. 3. 8. 00:12

Intellij IDEA Intellij IDEA는 Jetbrains 사에서 제작한 IDE로, Eclipse와 함께 자바/코틀린 진영의 대표적인 IDE 입니다. 자바를 처음 시작할때, 이클립스로 개발을 시작하였는데, 이후에 인텔리제이를 맛본 순간... 정말 헤어나올 수가 없었습니다. '우수성과 인체 공학이 담긴 Jetbrains Java IDE.' 라는 슬로건은 그야말로 인텔리제이를 나타내기 충분하다고 생각합니다. 설치방법 https://www.jetbrains.com/ko-kr/idea/download/#section=windows IntelliJ IDEA 다운로드: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com 위 링크로 들어가 Ultimate(유료) C..

article thumbnail
[Java] 자바 다운로드 및 설치 방법 및 환경 변수 설정
언어/Java 2023. 3. 7. 23:37

최근 서브 노트북이 급격히 느려져서 포맷을 했는데, 자바 설치하는 방법을 어디 정리해놓고 보면 좋겠다는 생각이 들어 이렇게 글로 적어봅니다. 자바 설치 https://www.oracle.com/java/technologies/downloads/ Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 자바는 오라클 홈페이지에서 다운로드 받을 수 있는데요. 예전에 처음 자바를 설치할 땐, 회원가입을 해야 다운로드가 가능했는데 요즘엔 그냥 다운로드가 되네요. 자바는 SE와 ..

article thumbnail
[Java] 자바 Swing을 사용한 GUI 숫자 야구 게임
언어/Java 2023. 2. 18. 01:14

앞서 포스팅했던 2048과 마찬가지로, 자바를 처음 배울 당시, Swing 파트를 배울 즈음 만들었던 프로젝트 입니다. https://uknowblog.tistory.com/2 [Java] 숫자 야구 게임 어렸을 적 많이 해봤던 숫자 야구 게임. ​ 입력한 값의 숫자와 정답의 숫자의 같은 자릿수의 숫자가 같다면 Strike ​ 자릿수는 다르나 같은 숫자가 있다면 Ball 이며, ​ 3 Strike 일 경우 게임을 승 uknowblog.tistory.com 숫자 야구 게임은 이전에 콘솔창 버전에서는 다룬 적이 있는데요. 해당 로직을 기반으로 한 GUI 버전입니다. 총 10번의 기회 안에 숫자를 맞추면 됩니다. 프로그램엔 두 가지 자바 클래스 파일이 있는데, 실행을 담당하는 Main.java와 프로그램 내부..