전체 κΈ€

iOS κΏ€μžΌ!
πŸ’» 개발/였늘의 μ‚½μ§ˆ

[Android / Kotlin] Failed to call observer method

였λ₯˜ λ°œμƒ Databinding + ViewModel + LiveData 둜 κ°„λ‹¨ν•œ MVVM 예제λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ Databinding 으둜 ν‘œν˜„ν•  λ³€μˆ˜(?)λ₯Ό layout μ•ˆμ— λΈ”λŸ­μ— λ„£μ–΄μ€¬λ”λ‹ˆ λ°œμƒν•œ 였λ₯˜ 였λ₯˜ λ‚΄μš© ν•΄κ²° String 으둜 λ³€ν™˜ν•˜μ§€ μ•Šμ•„μ„œ λ°œμƒν•œ 문제... γ…‹γ…‹γ…‹γ…‹γ…‹... toString() 을 ν•΄μ€¬λ”λ‹ˆ μ •μƒμ μœΌλ‘œ μž‘λ™ν–ˆλ‹€. μ°Έκ³  MVVM 예제 StackOverFlow

✍️ μ½”ν…Œ μ€€λΉ„/Back Tracking

[λ°±νŠΈλž˜ν‚Ή / 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..

✍️ μ½”ν…Œ μ€€λΉ„/Back Tracking

[λ°±νŠΈλž˜ν‚Ή / 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 ..

✍️ μ½”ν…Œ μ€€λΉ„/Back Tracking

[λ°±νŠΈλž˜ν‚Ή / 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..

πŸ’» 개발/iOS

[TIL] 22.03.23

κ³΅λΆ€ν•œ 것 코루틴 μ•Œκ²Œλœ 것 1. 코루틴 μ–΄μ œμ— 이어 코루틴 에 λŒ€ν•΄ ν•™μŠ΅ν–ˆλ‹€. 코루틴은 코루틴 μŠ€μ½”ν”„ λ₯Ό ν†΅ν•΄μ„œ μ‹€ν–‰ν•  수 μžˆλ‹€. 코루틴 μŠ€μ½”ν”„ λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ 코루틴을 μ‹€ν–‰ν•  수 μžˆμ§€λ§Œ 이런 κ²½μš°μ— μž‘μ—…μ΄ μ’…λ£Œλœ 코루틴에 λŒ€ν•΄ λ³„λ„μ˜ 처리λ₯Ό ν•΄μ€˜μ•Ό ν•œλ‹€. Coroutine Scope Coroutine Scope λŠ” μ½”λ£¨ν‹΄μ˜ λ²”μœ„λ₯Ό μ •μ˜ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€ 이닀. 말 κ·ΈλŒ€λ‘œ 코루틴이 μ‹€ν–‰λ˜λŠ” λ²”μœ„λ₯Ό μ§€μ •ν•œλ‹€. λͺ¨λ“  코루틴은 Scope λ‚΄μ—μ„œ μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜κ³  μ•‘ν‹°λΉ„ν‹° λ‚˜ ν”„λž˜κ·Έλ¨ΌνŠΈ 의 생λͺ…μ£ΌκΈ° 에 따라 코루틴 을 μ·¨μ†Œ ν•˜μ—¬ λ©”λͺ¨λ¦¬ λ¦­ 을 λ°©μ§€ν•œλ‹€. Global Scope 와 Coroutine Scope κ°€ μ‘΄μž¬ν•œλ‹€. 1. Global Scope : μ•±μ˜ 생λͺ…주기와 ν•¨κ»˜ λ™μž‘ν•˜κΈ°μ— λ³„λ„μ˜ 생λͺ… μ£ΌκΈ° 관리가 ..

✍️ μ½”ν…Œ μ€€λΉ„/String

[λ¬Έμžμ—΄ / 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..

πŸ’» 개발/iOS

[TIL] 22.03.22

κ³΅λΆ€ν•œ 것 코루틴 ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 1문제 μ•Œκ²Œλœ 것 1. 코루틴 코루틴 은 비동기 처리 λ₯Ό μœ„ν•΄ μ½”ν‹€λ¦° μ—μ„œ μ§€μ›ν•˜λŠ” 라이브러리 이닀. μš°μ„  동기 와 비동기 에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž. λ™κΈ°λŠ” 응닡을 μš”μ²­ν–ˆμ„ λ•Œ λ°˜ν™˜ 값을 μ–»κΈ° μ „κΉŒμ§€ λŒ€κΈ°ν•˜λŠ” 것을 λœ»ν•˜κ³ , λΉ„λ™κΈ°λŠ” λŒ€κΈ°μ‹œκ°„ λ³„λ„μ˜ Taskλ₯Ό μˆ˜ν–‰ν•˜λŠ” 것을 λœ»ν•œλ‹€. λ™μ‹œμ„± 처리 μž‘λ…„ OS μˆ˜μ—…μ„ 듀을 λ•Œ λ™μ‹œμ„± 처리 에 λŒ€ν•΄μ„œ λ°°μ› μ—ˆλ‹€. 그런데 κ°‘μžκΈ° λ™μ‹œμ„± 처리λ₯Ό μ™œ μ–˜κΈ°ν•˜λŠλƒ, λ™μ‹œμ„± μ²˜λ¦¬κ°€ λΉ„λ™κΈ°μ˜ κ°œλ…μ΄ μ μš©λ˜μ–΄ 있기 λ•Œλ¬Έμ΄λ‹€. λ™μ‹œμ„± μ²˜λ¦¬λŠ” 말 κ·ΈλŒ€λ‘œ λ™μ‹œμ— μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄λŠ” 것이닀. (Context Switching 이 λ°œμƒν•œλ‹€.) μ‹±κΈ€ μ½”μ–΄ μ—μ„œ λ©€ν‹° μ“°λ ˆλ“œ λ₯Ό ν†΅ν•΄μ„œ 이λ₯Ό κ΅¬ν˜„ν•˜κ³  μžˆλ‹€. μ“°λ ˆλ“œ λ™μ‹œμ„± 처리λ₯Ό μœ„ν•΄μ„œ..

πŸ’» 개발/iOS

[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..

✍️ μ½”ν…Œ μ€€λΉ„/DFS, BFS

[BFS][Kotlin] 2021 카카였 μ±„μš©μ—°κ³„ν˜• 인턴십 - 거리두기 ν™•μΈν•˜κΈ°

문제 풀이 μ–Έμ–΄ Kotlin μ½”λ“œ import java.util.* class Solution { fun solution(places: Array): IntArray { val answer = mutableListOf() val size = places.size for (place in places) { var check = 0 for (i in 0 until size) { for (j in 0 until size) { if (place[i][j] == 'P') { if (bfs(place, i, j, size).not()) { check = 1 break } } } if (check == 1) { break } } if (check == 1) answer.add(0) else answer..

πŸ’» 개발/iOS

[TIL] 22.03.19

κ³΅λΆ€ν•œ 것 MVC, MVP, MVVM, AAC μ•Œκ²Œλœ 것 1. MVC μš°μ„  κ°€μž₯ 일반적으둜 μ‚¬μš©λ˜λŠ” 아킀텍쳐 νŒ¨ν„΄μ΄λ‹€. Model, View, Controller 둜 λ‚˜λ‰œλ‹€. Model 은 데이터 생성, μ‚­μ œ, κ°±μ‹  λ“±μ˜ 둜직이 λ“€μ–΄μžˆλ‹€. View λŠ” μ‚¬μš©μžμ—κ²Œ λ³΄μ—¬μ§€λŠ” 화면이닀. Controller λŠ” μ‚¬μš©μžμ˜ μž…λ ₯을 μ²˜λ¦¬ν•œλ‹€. μš°μ„  μ‚¬μš©μžκ°€ View λ₯Ό ν†΅ν•΄μ„œ μž…λ ₯이 λ“€μ–΄μ˜€κ³  Controller κ°€ 이λ₯Ό μ²˜λ¦¬ν•œλ‹€. 이 λ•Œ μž…λ ₯을 λΆ„μ„ν•΄μ„œ Model κ³Ό View 에 κ°±μ‹  μš”μ²­μ„ ν•œλ‹€. Model 은 데이터λ₯Ό κ°±μ‹ ν•˜κ³  View λŠ” UI λ₯Ό κ°±μ‹ ν•œλ‹€. μ •λ¦¬ν•˜μžλ©΄, Controller λŠ” Model κ³Ό View κ°€ 무엇을 ν•΄μ•Όν•  지 μ•Œκ³  있고 이λ₯Ό ν†΅μ œν•˜κ³  μžˆλ‹€. Controller λ₯Ό ν†΅ν•΄μ„œ Model κ³Ό..

kodo_o
🍎🍏