본문 바로가기

kotlin27

[kotlin] 백준 1018번 체스판 다시 칠하기 풀이 먼저 나는 체스판의 시작이 B,W 총 2가지의 경우로 가정하였다. 또한 체스판의 크기가 9*9로 고정이므로, 우리가 9*9 크기에 체스판에 맞춰서 검사해야 할 경우의 수는 (행의 크기-1)*(열의크기-1) 만큼 검사해야한다. -> 즉 2 * (행의 크기-1) * (열의 크기 -1) 의 경우의 수가 나온다. package com.example.codingtest import java.io.BufferedReader import java.io.InputStreamReader import kotlin.math.min fun main(){ val br=BufferedReader(InputStreamReader(System.`in`)) val a=br.readLine()!!.split(' ') val row.. 2023. 10. 20.
[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.
[kotlin] 코틀린 스코프 함수 let, with, run, apply, also 차이 비교 정리 1. let     1. 수신객체를 받기 위해서 it 을 사용(생략 불가능),         명시적으로 local variales 선언 가능    2. 마지막 줄이 return 값 ( 람다식과 동일한 것을 볼 수 있음)    3.  let을 많이 쓰는경우 ?  non-null 체크  사용 예시class User( val name: String, var age: Int, val gender: Boolean, var hasGlasses: Boolean)val user: User? = User("나", 10, true,true)val age = user?.let { it.age //it으로 받음 , 마지막 줄 it.age가 리턴됨}val age1 = user?.let { use.. 2023. 8. 10.