일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- standard input
- 코틀린 노트북
- output stream
- resize image with go
- MySQL
- 의존성역전원칙
- kotlin
- IntelliJ
- image resizer with go
- 개인블로그 hugo
- 코틀린 out
- ruby
- Convariance
- cli 만들기
- 자바
- InnoDB
- resizer 구현
- Test
- 코틀린
- hugo 로 블로그
- JPA
- standard output
- 코틀린 in
- Java
- 공짜블로그
- Pitest
- 객체지향
- 돌연변이 테스팅
- change refresh rate
- Mutation testing
- Today
- Total
목록Algorithm (5)
Rlog
"들어가기 앞서 이 글은 취준 / 면접시 알고리즘을 봐야 하나? 라는 토픽과는 전혀 무관하다. 난 단순히 엔지니어링 측면에서 알고리즘의 중요성에 대한 내 생각을 적어보려고 한다" 최근 알고리즘 문제 풀이에 재미를 느끼고 있는데 Leetcode 문제 풀이를 하던 중, 여러 배열의 문자들의 combination 을 어떻게 구성해야 할까? 라는 고민이 생겼다. 예를 들면 아래와 같은 상황이라고 가정해보자. 이 아티클에서 구현 Level 의 언어는 Python 을 이용하려고 한다. Kotlin 으로 구현해버리면, Kotlin 을 모르는 사람은 알기 힘든 경우도 종종 있어서, 내 생각에 psuedo code 에 비슷하게 구현가능 한 언어인 Python 을 선택했다. 위와 같은 상황에서 a 와 b 배열을 한단어씩 ..
Coding Interview - 1 문제 정수 배열 a 와 b 가 주어졌을때, a 와 b 에서 각각 하나씩 집은 뒤 더해서 v 를 만들 수 있으면 true 를 리턴하고, 아니면 false 를 리턴해라 ## CASE1 a = [1, 2, 3] b = [10, 20, 30, 40] v = 42 ## CASE2 a = [0,0,-5,30212] b = [-10, 40, -3, -9] Solution (Brute-Force) fun solution(a: IntArray, b: IntArray, v: Int): Boolean { for (firstNum in a) { val meetsCondition = v - firstNum for (secondNum in b) { if (meetsCondition == se..
HashTable vs Binary Search Tree Criteria Binary Search Tree HashTable Time Complexity(Insertion / Deletion / Searching) O(nlogN) O(1) Sorted Order 데이터가 삽입시 부터 정렬되어 있음. 중위 순회를 하면 정렬된 데이터가 나옴. 데이터가 랜덤한 형태로 저장되어 있음(해시값 이용). 만약 Sort 하려면 추출해서 Sort 해야함 Hash Function X O(1) 시간에 수행하기 위해서는 적절하게 키를 생성해내는 Hash Function 이 필요 Collsion X 충돌 발생시 Chaining 이나, Open Address 방법을 이용 Input Data Size 딱히 Input Size 를 ..
TDD 테스트 주도 개발 (Test Driven Development) 로 기능에 대한 테스트를 먼져 작성한 뒤 테스트가 통과할 수 있는 코드를 작성하는 것을 뜻한다. 예전에는 이러한 방법이 단순히 더 느리다고만 생각했는데, 요즘 드는 생각은 TDD 로 하는 방법이 일반 방법보다 때로는 빠를때도 많다는 것이 내 의견이다. 사람들이 TDD 책을 읽지 않고 단순히 테스트 먼져 적으면 되는거 아니야? 라고 해서 TDD 를 시작하게 되면 당연하게도 TDD 가 느리네 라고 생각할 수 밖에 없다. 그래서 켄트백과 최범균님의 책을 읽고나서 내가 느낀 경험을 바탕으로 TDD 를 하는 방법을 적어보려고 한다. Know-how 일단 켄트백의 TDD 책을 읽어보면 테스트를 쉽게 할 수 있는 작은 기능을 찾는게 가장 중요하다..
병합정렬 Merge Sort 는 Java Collection API 에서도 사용하는 것으로 알고있을 정도로 안전하다. 가끔 왜 Quick Sort 를 쓰지않고, Merge Sort 를 사용하여 구현하는 것에 대한 이야기가 있는데 Quick Sort 를 구현해봤다면 Quick sort 는 stability 하지 않다는 것을 알것이다. 따라서 충분히 objcet 의 경우에 sort 에서 순서가 뒤바뀌는 현상을 경험하기 충분하며 그로인한 사이드 이펙트를 유발할 수 있다. 일단 이 얘기는 뒤로하고 알고리즘에 대해 알아보도록 하자. 도식 나는 이런 Recursive 하게 짜야되는 Algorithm 을 작성할때는 항상 도식을 그리는 편이다. 그래야 Call Stack 생각도 잘나고, 코드도 잘 작성되는 것 같다. ..