분류 전체보기

세그먼트 트리는 sum, sub 연산 말고도 min, max, gcd, lcm과 같은 다양한 연산이 가능한 자료구조이다. Segment Tree 주어지는 연속된 데이터에 대한 구간 연산(Update, query)을 O(logn) 시간에 할 수 있는 자료구조이다. 다음과 같은 배열이 있다고 하자. (index는 왼쪽부터 0이다) SUM 연산을 위한 세그먼트 트리는 위 배열을 다음과 같이 표현한다. 표현 방식은 굉장히 간단한데, 각 노드의 자식 노드를 더해서 해당 노드의 값으로 표현한다. 즉 루트 노드는 전체 원소의 합이라고 볼 수 있다. 전체 원소의 합이라는 것은 전체 원소를 cover 한다는 뜻으로 생각하면 된다. 즉, root에서 leaf로 내려갈수록 cover 범위가 줄어든다고 보면 된다. 그리고 루..
· Spring
문제 발생 응답 메시지에 포함된 한글이 깨져서 테스트에 어려움을 겪음 해결 방법 기존의 @AutoConfigureMockMvc를 사용하는 새로운 어노테이션을 생성하고 CharacterEncodingFilter를 추가하여 해결할 수 있다. 기존 코드에서 @AutoConfigureMockMvc를 새롭게 생성한 어노테이션으로 대체해주자. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @AutoConfigureMockMvc @Import(EnableMockMvc.Config.class) public @interface EnableMockMvc { class Config { @Bean public CharacterEncoding..
풀이 만약 a, b, p, q 가 다음과 같다고 한다면 [3, 9, 2, 3] a(3) : b(9) = p(2) : q(3)를 만족해야 한다. (여기서 a, b의 값은 재료의 질량이다) 즉 pb * x == qa * y를 만족해야 한다. 그럼 (lcm은 최소공배수, gcd는 최대공약수이다) x = lcm / pb = (qa * pb) / gcd / pb = qa / gcd = 1 y = lcm / qa = (qa * pb) / gcd / qa = pb / gcd = 2 위처럼 x, y를 구할 수 있다. 그런데 이때 x, y에 최대공약수가 존재할 수 있다. 우리는 최소가 되는 결과값을 원하기 때문에 최대공약수가 있다면 해당 값으로 나누어줘야 한다. 따라서 x, y의 gcd를 구하여 나누어준다음 다른 비율들..
https://solved.ac/profile/seaworld0125 solved.ac 알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 난이도 및 티어 정보 제공 solved.ac 약 두 달 넘는 기간 동안 백준을 풀었고 오늘 후기를 남기려고 한다. 일단 기록을 보면 알 수 있지만 초반에 중요한 코딩 테스트가 예정되어 있어서 뜻하지 않게 시작되었던 1일 1 백준 도전이었다. 초반에 미친 듯이 알고리즘을 풀었고 하루에 5문제는 기본으로 풀었던 것 같다. 그때쯤 블로그에 알고리즘 개념도 많이 정리해서 포스팅했었다. 그 이후에는 다른 중요한 일정들이 있어서 병행하다 보니 하루에 많은 문제를 풀지는 못했다. 그리고 두 달이 지난 지금 돌아보면 알고리즘 공부는 미친 듯이 하는 게 실력 ..
· JAVA
코딩 컨벤션 프로젝트에서 사용할 JAVA 코딩 컨벤션을 설정한다. intellij에 google-style-guide 적용 자동완성 코딩 스타일을 적용한다. 1. https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml 다운 2. intellij -> File -> Settings -> Editor -> Code style -> Java -> Scheme -> 톱니바퀴 버튼 -> Import Scheme -> Intellij IDEA... 선택 3. 다운 받은 xml 파일 선택 및 적용 4. 해당 설정 화면에서 Tab size, Indent는 4로 변경, Continuation indent는 8로 변경 및 적용 5...
· Spring
웹 스코프는 웹 환경에서만 동작하는데, 스프링이 해당 웹 스코프의 종료 시점까지 관리한다. 따라서 프로토타입 스코프와 다르게 종료 메서드가 호출된다. 웹 스코프의 종류는 다음과 같다. request : HTTP 요청이 들어오고 나갈 때까지 유지되는 스코프이다. 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리된다. session : HTTP Session과 동일한 생명주기를 가지는 스코프 application : 서블릿 컨텍스트(ServletContext)와 동일한 생명주기를 가지는 스코프 websocket : 웹 소켓과 동일한 생명주기를 가지는 스코프 웹 스코프를 테스트해보기 위해서는 웹 환경을 추가해줘야 한다. 다음 의존성을 추가하자. implementation 'org.springfram..
@xftg77g
'분류 전체보기' 카테고리의 글 목록 (10 Page)