본문 바로가기

반응형

전체 글

(124)
segment tree 세그먼트 트리는 어떤 범위에 대한 쿼리를 효율적으로 대답해 줄 수 있는, 또 그러면서 수정도 가능한 자료구조 중 하나입니다. 아래와 같은 쿼리 2개를 생각해 봅시다. 1. 길이가 N인 어떤 수열 A에서 A[i]부터 A[j]까지의 합을 구하라 2. 길이가 N인 어떤 수열 A에서 A[i]를 v로 바꿔라 일반적인 경우 이 두 쿼리는 $O\left ( N \right )$으로 해결 할 수 있습니다. 그런데 구간 트리를 이용하면 $O\left ( logN \right )$으로 쿼리를 해결 할 수 있습니다. 위 그림과 같이 각 노드가 구간을 커버하면서 구간에 해당하는 값을 가지고 있는 형태를 세그먼트 트리는 가지고 있습니다. 1번이 루트 노트이고 아래로 2,3번을 자식 노드로 갖는점에 유의해주세요! 세그 트리를 구..
Codeforces R697 D3 solved 1 out of 7 서버 문제로인해 대회가 미뤄지기도하고 채점이 진행되지않아 B번까지 보다가 그냥 잤습니다. 너무 아쉽지만 A번을 특이하게 풀어서 기록을 남깁니다. A. Odd Divisor 주어진 정수 N이 홀수로 나눠지는지 확인하는 문제입니다. 다만 이때 N의 크기가 $10^{14}$임으로 $O\left ( N \right )$으로 찾아주면 안됩니다. N이 홀수면, N은 무조건 Odd Divisor를 갖는다는 점을 활용하여 문제를 해결할 수 있습니다. func(N) { if N=odd return true else if N=even func(n/2) } 이렇게 N을 절반씩 나눠주면 $O\left ( logN \right )$안에 문제를 풀 수 있습니다. bool chk(ll k) { if..
스프링부트와 AWS로 혼자 구현하는 웹 서비스 1 P71 lombok lombok 기능 테스트 코드가 책에서 설정한 그대로 진행하여도 정상적으로 동작하지 않습니다. import static org.assertj.core.api.Assertions.assertThat; 이 부분에서 부터 assertThat이 정상적으로 import되지 않는 문제가 발생합니다. 따라서 당연히 assertThat method는 호출 불가합니다. 해결법 1. 오타 확인 static 등을 적지 않을 경우 정상동작하지 않습니다. 2. build.gradle에 dependencies 추가 testCompile "org.projectlombok:lombok" annotationProcessor('org.projectlombok:lombok') testAnnotationProcessor..

반응형