Pipeline을 갖는 component는 Engine, Application, Routing, Route가 있다. 각 component의 기본 phase는 다음이 있다: Engine EnginePipeline before call after ApplicationReceivePipeline Before Transform After ApplicationSendPipeline Before Transform Render ContentEncoding TransferEncoding After Engine Application ApplicationCallPipeline Setup Monitoring Plugins Call Fallback ApplicationReceivePipeline Before Transform..
JPA를 이용하거든 그렇지 않든 object의 ID를 Java primitive type으로만 관리하는 것은 여간 귀찮은 일이 아니다. ID를 사용한 조회에서 Long만 여러개 전달하는 상황은 충분한 문서화가 이뤄지지 않은 상황에서 어떤 의도하지 않은 상황으로 이어질지 모른다. 그래서 Kotlin value class를 사용하여 ID를 wrap하여 Java에서는 unwrap된 타입으로 사용되길 기대하고 사용하는데... 다음 예시를 보자. JPA Entity에 value class ID를 사용한 모습이다. 여기까진 아무런 문제가 없다. JpaRepository를 사용하더라도 ID에 unwrap된 type을 넣어준다면 findById까지 완벽히 작동한다. 이때, table `foo`를 참조하는 table `..
결과 싱글 스레드 환경에서 Vector는 ArrayList 대비 약 6배의 시간이 소요된다. 멀티 스레드 환경에서 Vector는 synchronized ArrayList 대비 약 1.3배의 시간이 소요된다. 멀티 스레드 환경에서 synchronized ArrayList은 Mutex.withLock ArrayList 대비 약 2.2배의 시간이 소요된다. Vector 대신 ArrayList를 사용하려면 반드시 원자적인 연산만 수행해야 한다. 본문 Java에는 배열을 사용한 List 구현체로 Vector와 ArrayList가 있다. Vector는 모든 add, get, set이 synchronized로 작동하는 점이 ArrayList와 다르다. Vector와 ArrayList와 충분한 capacity만 확보되..
어떤 자연수 \(X\)가 주어졌을 때 이 \(X\)보다 작거나 같고 가장 큰 마지막 자연수의 수열의 원소를 유도해보자. 먼저 1이상의 자연수 \(n\)까지의 자연수의 합 \(S_n\)은 쉽게 구할 수 있다. $$S_n={{n(n+1)} \over {2}}$$ 여기서 \(X\)보다 작은 최대 합은 다음을 만족한다. $$S_n = {{n(n+1)} \over {2}} \leq X$$ 먼저 최대 합이 \(X\)와 같을 때의 \(n\)을 구한다고 생각하면 부등식이 등식이 된다. $${{n(n+1)} \over {2}} = X$$ 위 식을 \(n\)에 대한 식으로 정리할 수 있다. $$n^2 + n = 2X$$ $$n^2+n+{1 \over 4} = 2X+{1 \over 4}$$ $$4n^2+4n+1=8X+1$$..
solved.ac 실버 5에 랭크되어 있지만 재미있는 문제다. 어지간히 복잡한 방법을 사용해서 해결하더라도 수열의 길이가 1,000을 넘지 않는다는 점에서 해결이 어려운 문제는 아니다. 하지만 상수 시간에 해결할 수 있다면 어떨까? 문제에서 주어진 수열은 다음과 같다: \(a_n\) = 1 2 2 3 3 3 4 4 4 4 5 5 5 ... 1이 1번, 2가 2번, 3이 3번, 4가 4번 나오는 방법이 반복되는 것이다. 이때 수열 \(a_n\)의 \(n\)번째 항까지의 합을 \(S(n)\)라고 하자. 문제에서 입력 A와 B가 주어질 때 A부터 B번째 수까지의 합은 다음과 같이 표현할 수 있다. $$S(B) - S(A) + a_A$$ 그렇다면 \(S(n)\)와 A번째 항 \(a_A\)를 상수 시간에 구할 수..
주어진 범위의 수들 중 k개의 등차수열의 합으로 표현가능한 수의 수를 구하는 문제다. 초항과 공차가 반드시 자연수이므로 각 k에 맞는 최소한의 수가 존재한다. k = 2) 1 + 2 = 3이므로, left가 3보다 작더라도 3부터 시작한다. 초항 n, 공차 d에서 n + n + d = 2n + d를 만족하는 모든 수가 해당된다. 따라서 3이상의 모든 수가 길이가 2인 등차수열의 합이다. (예: 4 = 1 + 3, 5 = 1 + 4 ...) k = 3) 1 + 2 + 3 = 6이므로, left가 6보다 작더라도 6부터 시작한다. 초항 n, 공차 d에서 n + n + d + n + 2d = 3n + 3d를 만족하는 모든 수가 해당된다. 따라서 6이상의 모든 3의 배수가 길이가 3인 등차수열의 합이다. k =..
이게 왜 solved.ac 골드 1에 있는 문제인지 의문스럽다. 문제의 제한 시간은 2초, 1,000,000보다 작거나 같은 모든 L에 대해 선분의 길이 쌍을 모두 구하고도 남을 시간이다. (3, 4), (5, 12), (8, 15) ... 와 같은 쌍을 모두 준비하는 방법을 생각해보자. 첫번째 조건은 세 성분을 잘 조합했을 때 '피타고리안 트리플'이 되어야 한다는 것이다. 3, 4가 있다면 다른 한 수는 5가 되어야 한다는 것이다. 두번째 조건은 폭보다 높이가 커야한다는 것으로, (3, 4), (4, 3)에서는 (3, 4)만이 유효하다는 것을 알 수 있다. 마지막 조건은 두 수의 최대공약수가 1이어야 한다는 것, 다시 말해 두 수가 서로소여야 한다는 것이다. (3, 4)는 허용해도, (6, 8)은 안 ..
두 수의 합이 다른 두 소수의 합으로 표현할 수 있는가에 대한 문제다. 문제에서 A와 B의 범위는 1 이상이므로 합은 2, 3, 4, ...로 나올 수 있다. 이때 A+B가 2 또는 3이라면) 가장 작은 소수 2를 뺐을 때 나머지 0 또는 1이 소수가 아니므로 두 소수의 합으로 표현할 수 없다. A+B가 4 이상의 짝수라면) 골드바흐의 추측*에 의해 '어지간한 수'까지는 두 소수의 합으로 표현할 수 있다. * 수학적으로 엄밀한 증명이 이뤄지지는 않았지만, 우리 문제 범위에서는 영향이 없다. A+B가 4 이상의 홀수라면) 2로 뺀 A+B-2가 소수라면 두 소수의 합으로 표현할 수 있고, A+B-2가 소수가 아니라면 두 소수의 합으로 표현할 수 없다. 예를 들어 19는 2+17의 쌍으로 표현할 수 있다. 하..
- Total
- Today
- Yesterday
- dokdo project
- Kotlin
- CM11
- Java
- C++
- f320k
- C
- dokdo-project
- rule_of_three
- inline class
- rule_of_five
- linaro
- dokdo 4.0.3
- c++ struct
- d802
- OOP
- 객체지향
- LG
- c++ 상속
- c++11
- PipelineContext
- g2 korea
- vector
- G2
- f320s
- CM10.2
- nodeal
- cyanogenmod
- 포인터
- C++ 업캐스팅
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |