전체 글

전체 글

    [구현 / Kotlin] BOJ 13459 - 구슬 탈출

    문제 풀이 언어 Kotlin 코드 import java.util.* data class Point( val x: Int, val y: Int ) data class Points( val red_x: Int, val red_y: Int, val blue_x: Int, val blue_y: Int, val depth: Int ) data class Infos( val x: Int, val y: Int, val cnt: Int ) lateinit var array: Array val dx = arrayOf(1, -1, 0, 0) val dy = arrayOf(0, 0, 1, -1) var n = 0 var m = 0 var red = Point(0, 0) var blue = Point(0, 0) fun mai..

    [백트래킹 / Kotlin] BOJ 14888 - 연산자 끼워넣기

    문제 풀이 언어 kotlin 코드 import java.lang.Integer.max import java.lang.Integer.min import java.util.* var n = 0 var max_value = Int.MIN_VALUE var min_value = Int.MAX_VALUE lateinit var array: Array lateinit var operator: Array fun main() = with(Scanner(System.`in`)) { n = nextInt() array = Array(n) { nextInt() } operator = Array(4) { nextInt() } calculate(array[0], 1) println(max_value) println(min_va..

    [Error] Failed to call observer method

    오류 발생 Databinding + ViewModel + LiveData 로 간단한 MVVM 예제를 구현하기 위해 Databinding 으로 표현할 변수(?)를 layout 안에 블럭에 넣어줬더니 발생한 오류 오류 내용 해결 String 으로 변환하지 않아서 발생한 문제... ㅋㅋㅋㅋㅋ... toString() 을 해줬더니 정상적으로 작동했다. 참고 MVVM 예제 StackOverFlow

    [백트래킹 / Kotlin] BOJ 2580 - 스도쿠

    문제 풀이 언어 Kotlin 코드 import java.util.* import kotlin.system.exitProcess lateinit var board: Array fun main() = with(Scanner(System.`in`)) { board = Array(9) { Array(9) { 0 } } // 주어진 배열을 입력받음 for (i in 0 until 9) { for (j in 0 until 9) { board[i][j] = nextInt() } } // (0, 0) 부터 시작 sudoku(0, 0) } fun check(row: Int, col: Int, value: Int): Boolean { // 1. 같은 행, 다른 열에 같은 값이 존재하는지 확인 for (i in 0 unti..

    [백트래킹 / Kotlin] BOJ 9663 - N Queen

    문제 풀이 언어 Kotlin 코드 import java.util.* import kotlin.math.abs lateinit var array: Array var n = 0 var cnt = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() array = Array(n) { 0 } nQueen(0) println(cnt) } fun nQueen(depth: Int) { // depth는 row if (depth == n) { println(depth) cnt++ return } for (i in 0 until n) { // i는 col array[depth] = i if (check(depth)) { nQueen(depth + 1) } } } fun ..

    [백트래킹 / Kotlin] BOJ 15649 ~ 15652 - N과 M (1 ~ 4)

    N과 M (1) 문제 풀이 언어 Kotlin 코드 import java.util.* lateinit var visit: Array lateinit var input: Array var n: Int = 0 var m: Int = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() m = nextInt() visit = Array(n + 1) { 0 } input = Array(n + 1) { 0 } dfs(0) } fun dfs(depth: Int) { if (depth == m) { for (i in 0 until m) { print("${input[i]} ") } println() return } for (i in 0 until n) { if (vis..

    [TIL] 22.03.23

    공부한 것 코루틴 알게된 것 1. 코루틴 어제에 이어 코루틴 에 대해 학습했다. 코루틴은 코루틴 스코프 를 통해서 실행할 수 있다. 코루틴 스코프 를 사용하지 않고도 코루틴을 실행할 수 있지만 이런 경우에 작업이 종료된 코루틴에 대해 별도의 처리를 해줘야 한다. Coroutine Scope Coroutine Scope 는 코루틴의 범위를 정의하는 인터페이스 이다. 말 그대로 코루틴이 실행되는 범위를 지정한다. 모든 코루틴은 Scope 내에서 실행되어야 하고 액티비티 나 프래그먼트 의 생명주기 에 따라 코루틴 을 취소 하여 메모리 릭 을 방지한다. Global Scope 와 Coroutine Scope 가 존재한다. 1. Global Scope : 앱의 생명주기와 함께 동작하기에 별도의 생명 주기 관리가 ..

    [문자열 / Kotlin] 2019 카카오 개발자 겨울 인턴십 - 튜플

    문제 풀이 언어 Kotlin 코드 class Solution { fun solution(s: String): IntArray { val string = s.slice(2 until s.length - 2) val array = string.split("},{") val sortedArray = array.sortedBy { it.length } val answer = mutableListOf() for (e in sortedArray) { val splitString = e.split(',') for (num in splitString) { if (answer.contains(num.toInt()).not()) answer.add(num.toInt()) } } return answer.toIntArray..

    [TIL] 22.03.22

    공부한 것 코루틴 프로그래머스 1문제 알게된 것 1. 코루틴 코루틴 은 비동기 처리 를 위해 코틀린 에서 지원하는 라이브러리 이다. 우선 동기 와 비동기 에 대해서 알아보자. 동기는 응답을 요청했을 때 반환 값을 얻기 전까지 대기하는 것을 뜻하고, 비동기는 대기시간 별도의 Task를 수행하는 것을 뜻한다. 동시성 처리 작년 OS 수업을 들을 때 동시성 처리 에 대해서 배웠었다. 그런데 갑자기 동시성 처리를 왜 얘기하느냐, 동시성 처리가 비동기의 개념이 적용되어 있기 때문이다. 동시성 처리는 말 그대로 동시에 여러 개의 프로세스가 동시에 실행되는 것처럼 보이는 것이다. (Context Switching 이 발생한다.) 싱글 코어 에서 멀티 쓰레드 를 통해서 이를 구현하고 있다. 쓰레드 동시성 처리를 위해서..

    [TIL] 22.03.20

    공부한 것 안드로이드 강의 수강 의존성 주입 프로그래머스 1문제 알게된 것 1. 의존성 주입 (Dependancy Injection) 이번에 의존성 주입이라는 것을 처음 접하게 됐다. 의존성 이라는 단어 자체를 build.gradle 에 선언하는 implementation 'org.jetbrains... 처럼 라이브러리 추가 말고는 접해본 적이 없었다. 아무튼 오늘 강의 를 수강하면서 의존성 주입 라이브러리인 Koin 을 접했고 이에 관해서 좀 더 찾아보는 시간을 가졌다. 의존성 주입 이라는 개념 자체는 어렵지 않았다. 우선 코드를 살펴보자. class Car { private val engine = Engine() private fun start() { engine.start() } } class En..