Kotlin
-
Spring Boot(Kotlin) - Github Copilot 사용 후기 (Feat. Django에서는?)| 이모저모 2024. 3. 4. 05:27
이전에 Flutter with Dart에서는 Github Copilot의 퍼포먼스가 굉장히 기대 이하였습니다. Flutter(Dart) - Github Copilot 사용 후기 Github Copilot 1개월 Free Tier를 통해 Flutter 앱개발에 활용해보았습니다. 거두절미하고 평점을 매기자면... 2.8/5.0 정도입니다. 아쉬운 점 : 코드 스니펫 제안 Widget 프로퍼티 값 제안은 상황에 맞게 그 meoru-tech.tistory.com 그런데 1인 프로젝트를 개발하다 보니 할 일이 너무 많았고, 생산성의 향상이 절실해졌습니다. Copilot 체험판 무료 기간은 이미 지났지만.. 지푸라기라도 잡는 심정으로 구독 신청해서 Spring Boot 애플리케이션에 적용해보았습니다. 이번에도 거두..
-
💡[BOJ 1915/ 코틀린] 가장 큰 정사각형 - DP문제풀이/BOJ 2021. 9. 3. 16:03
백준 1915_가장 큰 정사각형 | 문제 링크 대표적인 동적계획법/동적 프로그래밍 (DP:Dynamic Programming) 문제입니다. 문제 설명 n*m 크기의 0과 1로만 이루어진 이차원 배열이 주어집니다. 이 배열에서 (테두리, 내부 포함) 1로 이루어진 가장 큰 정사각형의 넓이를 구하는 문제입니다. 입력 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. 출력 첫째 줄에 가장 큰 정사각형의 넓이를 출력한다. 전체 코드 fun main() { var n = 0 var m = 0 var maxLen = 0 readLine()!!.split(" ").let { n = it[0].toInt() m = it[1].toInt() } val m..
-
💡[BOJ 20922 / 코틀린] 겹치는 건 싫어 - 투 포인터문제풀이/BOJ 2021. 9. 3. 14:26
백준 20922_겹치는 건 싫어 | 문제 링크 투 포인터 기법을 활용한 문제입니다. 문제 설명 N개의 자연수로 이루어진 수열에서, 같은 수가 K번 이하로 반복되는 최장 연속 부분 수열을 구하는 문제입니다. N은 1~200,000 , K는 1~100 범위의 정수로 주어집니다.각 원소 ai는 1~100,000 범위의 정수로 주어집니다. 입력 첫째 줄에 정수 N과 K가 주어진다. 둘째 줄에는 a1,a2,...an이 주어진다. 출력 조건을 만족하는 최장 연속 부분 수열의 길이를 출력한다. Main 함수 (전체 코드) import java.util.* fun main() { var N:Int = 0 var K:Int = 0 readLine()!!.split(" ").let { N = it[0].toInt() K ..
-
💡[BOJ 21608 / 코틀린] 상어 초등학교 - 구현문제풀이/BOJ 2021. 9. 2. 18:19
백준 21608_상어 초등학교 | 문제 링크 특별한 알고리즘이 아닌 단순한 구현 문제입니다. 문제 설명 N*N 교실에 1번부터 N²번까지의 학생이 한 자리씩 앉습니다. 각 학생의 친한 친구 4명씩을 사전 조사를 통해 파악해놨습니다. 각 학생의 만족도 총합이 가장 큰 좌석 배치 방법을 구하시오. 근처에 친한 친구가 0명이면 만족도는 0이고, 1명이면 1, 2명이면 10, 3명이면 100, 4명이면 1000이다. '근처, 인접'은 사방(四方)을 이야기한다. 규칙의 순서는 다음과 같다. 1. 빈 칸 중 친구가 인접한 칸이 가장 많은 칸으로 자리를 정한다. 2. 1을 만족하는 칸이 여러 개이면, 인접한 칸 중 빈 칸이 가장 많은 칸으로 자리를 정한다. 3. 2를 만족하는 칸도 여러 개인 경우에는 행의 번호가 가..
-
💡 [Kotlin] Double형 변수 소수점 자릿수 설정, 반올림, 올림, 내림| 프로그래밍 분야/Kotlin 2021. 7. 26. 21:15
코틀린에서 Double형 변수를 표현하는 방법은 여러가지가 있습니다. 그 중 가장 강력한 것으로 String.format() 메서드를 먼저 보겠습니다. String.format() fun main() { val dNum:Double = 454.14600 println(String.format("%.0f", dNum/100).toDouble() * 100)// 500.0 println(String.format("%.2f", dNum))// 454.15 println(String.format("%.8f", dNum))// 454.14600000 } 이렇듯 String.format() 메서드를 사용하여 C언어에서 float타입 변수를 format 표현식으로 자유롭게 가공했던 방법을 그대로 사용할 수 있습니다...
-
💡 [Kotlin] 빠른 입출력(I/O) - BufferedReader, BufferedWriter (예제 : BOJ 15552)| 프로그래밍 분야/Kotlin 2021. 7. 25. 20:48
Java에는 Scanner.next()와 System.out.println()의 기본적인 입출력 함수들이 존재합니다. 마찬가지로, Kotlin에는 readLine()과 println()의 기본적인 입출력 함수들이 존재합니다. (물론, Kotlin에서 스캐너와 sysout을 써도 됩니다. 또, kotlin.io.println()은 System.out.println()과 100% 동일한 함수입니다.) 위 함수들은 사용이 간편한 대신, 느린 입출력(slow I/O)에 해당합니다. 왜 느릴까요? 우리는 보통 (Java에서)이렇게 스캐너를 정의하여 사용합니다. Scanner sc = new Scanner(System.in); 여기에서 System.in은 InputStream타입의 정적 필드입니다. 그래서 Scan..
-
💡 [Kotlin] 예제를 통해 보는 기본 문법2 - 함수 표현식, 기본 입출력, split(), map(), if-else, 삼항연산자| 프로그래밍 분야/Kotlin 2021. 7. 23. 23:04
Hello World! 출력하기 (BOJ 2557) fun main() = print("Hello World!") 한 줄짜리 함수는 중괄호{} 를 생략하고 등호= 를 통해 표현할 수 있습니다. 이 때 함수의 리턴 타입(return type)과 우변의 리턴 타입은 같아야 합니다. 함수의 리턴 타입을 명시하지 않을 시, 우변의 리턴 타입이 자동으로 캐스팅됩니다. 예 ) fun func() = 3 다음과 동일) fun func():Int { return 3 } 기본 콘솔 출력 함수에는 print()와 println()이 있으며, 동작은 동일하나 println()은 마지막에 개행(줄바꿈)이 추가됩니다. 알람 시계 설정 (BOJ 2884) fun main() { val input = readLine()!!.spl..
-
[프로그래머스] 프린터 (Kotlin)문제풀이/프로그래머스 2021. 7. 2. 23:10
문제 링크 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 두 가지 방법으로 풀었습니다. 첫 번째 방법은 ArrayList를 이용한 큐의 구현, 두 번째 방법은 java.util.ArrayDeque를 import하여 사용. 로직은 동일하며, 다른 사람의 풀이에서도 크게 획기적인 방법은 찾지 못했습니다. 퍼포먼스는 케이스마다 조금씩 다르나, 평균적으로 아주 약간 ArrayDeque를 이용한 두 번째 방법이 더 좋게 나왔습니다. 내 풀이(1) class Solution { fun solution(priorities:..