본문 바로가기

전체 글103

백준 2042 구간합 JAVA 인풋이 워낙 크다보니 단순한 반복으론 못푸는 문제이다. 구간합을 세그먼트 트리를 이용하여 저장하는 방식이다. 세그먼트 트리는 이진 탐색을 이용해 사전에 트리에 구간의 합을 저장해 놓고 그 구간의 합을 재활용 하는 식으로 구현이 된다. 자세한 구현 방법은 다음 문제에서 자세히 설명하도록 하겠다. package com.company; import java.io.*; import java.util.*; //아래 함수에서 start는 구간의 시작을 의미. end는 구간의 끝을 의미. class SegTree{ long arr[]; long tree[]; SegTree(long[] arr){ this.arr=arr; this.tree=new long[arr.length*4]; } public long init(i.. 2020. 12. 22.
Elasticsearch를 이용한 문서 유사도 검색과 Springboot를 통한 구현 (설정편)(2) 지난번 게시글에 이어서 (약..반년만에 글을 쓰는것 같은..) 스프링부트에서 어떻게 Elasticsearch를 이용해 유사도를 활용한 검색을 하는지 작성하겠다. 기본적으로 지난 글 내용을 참조하여서 특정 필드에 대해서 유사도를 계산하는 인덱스를 만들어줘야 한다. 공식 DOC을 찾아보면 쉽게 찾아서 적용시킬 수 있으며 검색할때 사용하는 analyzer도 반드시 지정해줘야 한다.(tokenizer를 이용해서 나오는 결과는 추후에 첨부하도록 하겠다.) 아무튼.. 인덱스 설정 및 생성을 완료하였다면 이젠 엘라스틱서치로 요청을 할 차례이다. 기본적으로 ES는 json을 이용해 HTTP Method인 Get, Post, Delete, Put을 이용해 모든 요청 받고 리턴해주게 된다. 그런데..사실 검색을 할 때에 .. 2020. 12. 2.
스마일게이트 스토브 데브캠프 합격! 지난 겨울.. 온라인으로 스마일게이트에서 진행했던 서버캠프에 참여했었는데, 온라인으로 하다보니 한계가 존재하여 이번에 스토브에서 진행하는 데브캠프에 참여하기 위해 또 다시 신청을 하였다. 이번에는 서류를 내서 서류를 통과하고 면접을 보고 다행히도 이번에는 합격 메일을 받게되었다. 면접 내용은 공개를 해도 되는지 모르겠어서 따로 쓰진 않겠지만.. 지난 겨울에 배운 내용도 참 유익했는데 이번에 오프라인으로 참여하게 되어서 매우 기쁘다.. 지난번에는 논문도 쓰고 이것저것 하다보니까 블로깅 할 시간이 전혀 없었는데, 이번 캠프때는 최대한 배운 내용을 정리할 수 있으면 좋겠다. 지금까지 했던 프로젝트도 정리해야하는데 흠.. 두달동안 또 피를 토하며 프로젝트를.. 2020. 12. 2.
백준 11559번 Puyo Puyo JAVA 문제를 이번에도 잘못 읽었다.. 길어도 찬찬히 읽는 습관을 들이자. package com.company; import java.io.*; import java.util.*; class XY{ int x; int y; XY(int x, int y){ this.x=x; this.y=y; } } public class Main { public static char[][] map; public static boolean[][] visited; public static ArrayDeque deque; public static int answer = 0; public static void printMap(char[][] map){ for(int i=0;i 2020. 12. 2.