본문 바로가기

전체 글116

[kotlin] 코틀린 백준 2839번 설탕배달 1. 먼저 n이 5의 배수인지 확인 후 배수이면 나눈 몫을 출력 2. 배수가 아닌 경우 3을 하나씩 빼면서 5의 배수가 되는지 확인 하는 과정을 거친다. 그 과정에서 n이 0이 되면 그동안 뺀 횟수를 출력하고 빼면서 5의 배수가 완성되면 뺀 횟수 와 5로 나눈 몫을 더한 값을 출력합니다 3. 마지막으로 n이 음수가 되면 정확하게 N킬로그램을 만들 수 없으므로 -1을 출력한다. package org.techtown.part0.kotlin.part2.solvedac fun main() = with(System.`in`.bufferedReader()) { var n = readLine().toInt() //입력 var count: Int = 0 while (true) { if (n % 5 == 0) { cou.. 2023. 8. 15.
[kotlin] Data class, Sealed class fun main(){ ///////// data class 예시 ///////// val person=Person("수지",24) val dog=Dog("해피",23) println(person.toString()) // 그냥 참조 주소값이 나옴 // 출력: org.techtown.part0.kotlin.part2.Person@2acf57e3 println(dog.toString()) // 데이터 클래스의 경우 안의 데이터를 볼 수 있는 tostring 함수가 구현됨 // 출력 : Dog(name=해피, age=23) println(dog.copy(age=3)) // 원.. 2023. 8. 14.
[kotlin] 초기화 지연(lazy initialization) 초기화 지연을 사용하는 이유 ?  보통 클래스에서 변수를 초기화하면, 클래스 생성 시 해당 변수도 함께 생성되며 초기화된다. 그렇게 되면 클래스 객체를 생성할 때마다 해당 변수도 함께 초기화되기 때문에 바로 사용할 수 있다는 장점이 있다.하지만 해당 변수를 바로 사용하지 않거나 꼭 사용하는 경우가 아니라면 클래스를 생성할 때마다 변수를 초기화하기 때문에 메모리나 소프트웨어의 실행 시간 측면에서 손해를 많이 보게 될 것이다.정리하면 지연 초기화는 해당 변수가 필요한 순간까지 초기화를 최대한 미루어서 메모리나 실행 시간에서 이득을 보기 위해 사용한다. lateinit var text:String // 타입을 반드시 지정해줘야함val test : Int by lazy{ // lateinit var와 달.. 2023. 8. 14.
[kotlin] 백준 1874번 : 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 package org.techtown.part0.kotlin.part2.solvedac import java.util.* fun main() { val s = Scanner(System.`in`) val n = s.nextInt() //입력 var tmp = 0 var remember_num = 0 val st.. 2023. 8. 10.