chocho_log
[프로그래머스][Level3][JAVA] 멀리 뛰기
[문제 설명] programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr [풀이 내용] * 사용 알고리즘 : DP 1. brute force알고리즘을 사용해서 중복 순열로 풀면 시간초과가 뜬다. 문제의 규칙을 찾아보니 피보나치 수열과 같았다. 1) 1칸일 때 -> 1가지 - 1칸 2) 2칸일 때 -> 2가지 - 1칸 1칸 - 2칸 3) 3칸일 때 -> 3가지 - 1칸 1칸 1칸..
[프로그래머스][Level3][JAVA] 이중우선순위큐
[문제 설명] programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr [풀이 내용] JAVA의 PriorityQueue 자료구조를 이용하여 해결하는 문제다. 이 때 기억해야할 점은 다음 두가지이다. 1. JAVA의 PriorityQueue는 min heap이 default이다. 2. max heap을 구현하고 싶다면 Collections.reverseOrder() 옵션을 사용한다. 문제에서 최댓값을 삭제하는 경우와 최솟값을 삭제하는 경우가 둘 다 존재한다. min heap과 max heap이 둘 다 존재해야하므로 PriorityQueue 를 2개 생성하였다. 느낀점: Level3라고 하기엔 너무 쉬운문제다...

이분 탐색(Binary Search)
이분 탐색(Binary Search) - 정렬되어 있는 배열에서 데이터를 찾으려 할 때 탐색 범위를 절반으로 줄여가며 데이터를 찾는 방법 - 배열의 중앙값을 조사하여 탐색하고자 하는 값이 왼쪽 혹은 오른쪽에 있는지 알아내어 검색해야할 배열의 크기를 반으로 줄인다. - 순차 탐색에 비해 굉장히 효율적인 알고리즘 ex) 10억명의 이름이 담긴 배열에서 특정 이름을 찾으려면 순차탐색에서는 약 5억번의 비교가 필요하지만 이분탐색으로는 약 30번의 비교만으로 찾을 수 있다. * 이분 탐색을 할 수 있는 데이터의 조건 : 정렬이 된 배열이어야 함. * 이분 탐색에 적합한 데이터 : 삽입, 삭제가 빈번하기보다는 고정된 데이터 이분 탐색 동작 과정 ex1) 배열 [1,3,5,6,7,9,11,20,30]에서 5을 검색 ..
![[Junit] java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test 에러](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJwyKa%2FbtqUo9wVy9Q%2FGtFUseRyrQftKrevGsuaSK%2Fimg.png)
[Junit] java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test 에러
junit5에서 단위테스트 초기 세팅 과정에서 다음과 같은 에러메시지를 뱉었다. java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test @SpringBootApplication 어노테이션이 붙은 클래스가 위치한 패키지의 하위 패키지에 테스트를 둬야 한다는 원칙을 어긴 것이다. 나의 경우에는 멀티모듈 프로젝트였고 테스트코드를 작성하는 모듈은 @SpringBootApplication 어노테이션이 붙은 클래스가 존재하지 않는 단순참조용 모듈이었다. 다음과 같은 구조였다. 문제해결:..
curl과 wget
터미널에서 특정 주소의 파일을 다운로드 받고 싶을 때 mac은 curl, linux는 wget 명령어를 사용한다. 헷갈리지 말고 구분하여 쓰자. [사용 방법] 예시) 다운로드 받으려는 파일: https://repo.spring.io/release/org/springframework/cloud/spring-cloud-dataflow-server/2.7.0/spring-cloud-dataflow-server-2.7.0.jar - mac curl 'https://repo.spring.io/release/org/springframework/cloud/spring-cloud-dataflow-server/2.7.0/spring-cloud-dataflow-server-2.7.0.jar' - linux wget 'ht..
[Elasticsearch] 검색
1.검색 엘라스틱서치의 검색 기능은 질의(query) 명령어를 이용해 수행된다. *질의를 수행하는 방법은 2가지가 있다. 1) REST API 2) http 데이터를 이용한 request body 방식 검색 실습을 하기 위해 데이터를 입력하겠다. 입력할 데이터 예제 파일은 깃허브(github.com/wikibook/elasticsearch)에서 내려받았다. 접속하여 레파지토리에서 예제 파일을 다운로드받는다. 내려받은 예제파일의 05. 검색 디렉토리에 있는 5_1_books.json, 5_2_magazines.json 파일을 실습에 이용하겠다. 먼저 엘라스틱서치의 bulk API를 이용해서 5_1_books.json, 5_2_magazines.json 파일의 내용을 엘라스틱서치에 입력한다. curl -XP..
![[프로그래머스][Level3][JAVA][등굣길]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fczomn9%2FbtqTKKQDn07%2FIcaV0y9euI4kbepNPPMaxk%2Fimg.png)
[프로그래머스][Level3][JAVA][등굣길]
[문제 설명] https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr [풀이 과정] DP를 응용하여 푸는 문제이다. 집에서 학교까지의 좌표가 주어졌을 때 최단경로의 개수를 구하는 방법은 다음 규칙을 이용한다. m=4, n=3 1) (x, y) = (x+1, y)[아래] + (x, y+1)[오른쪽] 단, (x+1, y), (x, y+1) 좌표가 둘 다 위치범위를 넘어간다면 (x,y)는 1로 초기화 해준다. ..
[프로그래머스][Level3][JAVA][단어변환]
[문제 설명] https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr [문제 풀이] 문제에 나온 예시로 설명한다. 예시 > String begin = "hit"; String target = "cog"; String[] words = {"hot", "dot", "dog", "lot", "log", "cog"}; 1) String을 담는 Queue를 생성, 단어의 확인여부를 ..
![[Elasticsearch]데이터 처리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK0qvF%2FbtqSIZgYAVZ%2FkSEMODys28eXQiThzOYRR0%2Fimg.png)
[Elasticsearch]데이터 처리
데이터 처리 해당 책을 지침서로 공부하며 엘라스틱서치 데이터 처리를 공부하고 기록한다. http://book.naver.com/bookdb/book_detail.nhn?bid=8769630 시작하세요! 엘라스틱서치 [시작하세요! 엘라스틱서치]는 엘라스틱서치 검색엔진의 구조와 특징에 관해 설명하는 책이다. 책에서는 역파일 색인과 검색엔진의 개념, 클러스터와 노드로 구성된 엘라스틱서치의 시스템 구 book.naver.com 1.엘라스틱서치의 데이터 구조 * 엘라스틱서치 데이터 구조 : 인덱스(Index), 타입(Type), 도큐먼트(Document) - 도큐먼트 < 타입 < 인덱스 순 - 여러개의 엘라스틱서치 데이터가 저장되는 최소단위가 도큐먼트이며, 하나의 타입은 여러개의 도큐먼트로 구성, 하나의 인덱스는..