전체 글 160

[TIL] 22.04.17

공부한 것 정처기 22년 1회차 알게된 것 [1과목] 소프트웨어 설계 1. 소프트웨어 설계 방법 - 상향식 설계 방법 : 바텀업, 작은 문제를 해결하여 큰 문제로 통합, 객체 지향 프로그래밍 (Java) - 하향식 설계 방법 : 탑다운, 큰 문제를 작은 문제로 분해, 절차 중심 프로그래밍 (C) 2. 데이터 흐름도 - 프로세스 : 원 - 데이터 흐름 : 화살표 - 데이터 저장 : 평행선 - 종료 : 사각형 3. UI 설계 도구 - 와이어 프레임 : 페이지에 대한 대략적인 레이아웃 및 UI 요소 설계 - 목업 : 와이어 프레임에서 디자인, 사용 방법 설명, 평가를 위해 실제 화면과 유사하도록 UI를 변경 (정적) - 스토리보드 : 와이어 프레임에서 콘텐츠 설명, 흐름도 추가 - 프로토타입 : 와이어 프레임..

💻 개발/TIL 2022.04.17

[Android] MVVM 패턴 적용기 - 1

GitHub - k906506/MVVM: 🔨 MVVM이 뭐에요? 🔨 MVVM이 뭐에요? Contribute to k906506/MVVM development by creating an account on GitHub. github.com 요즘 MVVM 에 대해서 공부하고 있다. 지금까지 앱 구현할 때 그냥 액티비티에 다 때려박았었는데 모델이랑 뷰가 너무 강하게 결합되어 있는 느낌이 강했다. 또한 대부분의 로직을 뷰(액티비티)에서 처리하고 하고 있었고 재사용성이 매우 떨어졌었다. 실제로 겨울방학에 진행했던 글로벌인재트랙 때 어플 을 하나 만들었고 나름 분리한다고 분리했는데 진짜 재사용성이 0 이었다. MVC 가 구현하기는 정말 편했지만 이 기회에 패턴 공부도 할겸 MVVM 을 접하게 되었다. 물론 MVC ..

💻 개발/Android 2022.04.11

[백트래킹 / Kotlin] BOJ 14889 - 스타트와 링크

문제 풀이 언어 Kotlin 코드 import java.lang.Integer.min import java.util.* import kotlin.math.abs import kotlin.system.exitProcess lateinit var board: Array lateinit var visited: Array var min_value = Int.MAX_VALUE var n = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() board = Array(n) { Array(n) { nextInt() } } visited = Array(n) { 0 } search(0, 0) println(min_value) } fun search(index: Int,..

[백트래킹 / Kotlin] BOJ 1759 - 암호 만들기

문제 풀이 언어 Kotlin 코드 import java.util.* var l = 0 var c = 0 lateinit var array: Array lateinit var sortedArray: Array lateinit var visited: Array var stringBuilder = StringBuilder() fun main() = with(Scanner(System.`in`)) { l = nextInt() c = nextInt() array = Array(c) { next() } sortedArray = array.sortedArray() visited = Array(c) { 0 } dfs(0, 0) println(stringBuilder) } fun dfs(index: Int, depth:..

[백트래킹 / Kotlin] BOJ 1987 - 알파벳

문제 풀이 언어 Kotiln 코드 import java.lang.Integer.max import java.util.* var n = 0 var m = 0 var max_value = 0 val dx = listOf(-1, 1, 0, 0) val dy = listOf(0, 0, -1, 1) lateinit var board: Array lateinit var check: Array fun main() = with(Scanner(System.`in`)) { n = nextInt() m = nextInt() board = Array(n) { Array(m) { "" } } check = Array(26) { 0 } for (i in 0 until n) { val s = next().chunked(1) for..

[수학 / Kotlin] BOJ 11050 ~ 11051 이항 계수 (1 ~ 2)

이항 계수 1 문제 풀이 언어 Kotiln 코드 import java.util.* lateinit var array: Array var n = 0 var k = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() k = nextInt() // 재귀 대신 DP로 팩토리얼 구현 array = Array(n + 1) { 1 } // 팩토리얼 계산 for (i in 2..n) { array[i] = array[i - 1] * i } // 조합 공식 적용 // nCr = n! / (n-r)! * r! println(array[n] / (array[n - k] * array[k])) } 풀이 방법 고등학교 때 배운 조합 공식 을 적용하면 어렵지 않게 해결할 수 있..

[구현 / 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..

[백트래킹 / 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..