https://www.acmicpc.net/problem/2631 2631번: 줄세우기 KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 www.acmicpc.net 최장 증가 수열 (LIS, Longest Increasing Subsequence) 출처 : https://4legs-study.tistory.com/106 😢 수열의 한 원소에 대해, 그 원소에서 끝나는 최장 증가 수열을 생각해보자. 그 최장 증가 수열의 k를 제외한 모든 원소들은 반드시 k보다 작아야 할 것이다. , 따라서 k의 앞 순서에 있는 모든 원소들 중 값이 k보다 작은 원소에 대해, 그 각각..
redux를 통해 state를 유연하게 관리 할 필요가 있다. 상위 컴포넌트에서 하위 컴포넌트를 계속해서 호출 할 경우, props 지옥에서 벗어나기 위해서도 필요하기 때문임. 설정 : $ npm install @reduxjs/toolkit react-redux 혹은 $ npx create-react-app my-app --template redux template으로 지정해서 생성. cra로 react 프로젝트를 만든다면, 필요없는 라이브러리가 많이 설치되어, 추천하지 않는 경우도 있다. CRA 커맨드가 아닌 수동으로 만든 프로젝트라면, # NPM npm install redux # Yarn yarn add redux 커맨드를 사용해도 된다. toolkit 을 쓰는 이유는 공식 문서 상에서 추천 할 뿐..
🥕 서버 쪽 포트는 8080 / front 쪽 포트는 3000을 쓰고 있다. 😢 back : springboot java 11 🤢 front : react node 8080 서버로 API 요청시 요청값은 다음과 같이 온다. back단의 response header에 Access-Control-Allow-Origin 설정을 한다면, 모든 요청 response에 header를 설정해야 한다. 로컬환경에서는 처리하지만, 소프 배포이후에는 nginx 나 apache의 proxy 설정이 필요하다. 🤨 클라이언트쪽의 proxy 설정을 통해 해결 할 경우 다음과 같다. 1. 미들웨어 설치로 설정 $ npm install http-proxy-middleware --save $ yarn add http-proxy-mid..
목적 : 삭제 총 타겟 : DB상에 있는 데이터 기준으로 1억 8천만 건에 해당. JAVA 에서 aws SDK 를 이용한 삭제 요청시에는 1회 요청 최대 오브젝트 수가 1000개로 제한되어있음. 따라서 비동기방식으로 DB의 데이터를 1000건씩 조회 해서 삭제 요청을 계속 던지는 쓰레드를 구현 하려 함. controller : @ApiOperation(value = "aws s3 object delete api", notes = "") @RequestMapping(value = "/del/{offset}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity s3DeleteObjList(..
junit 사용 시 build 과정에서 못찾는 문제가 있음. 해결책 1. build and run using : gradle -> intelij IDEA Run tests using: gradle -> intelij IDEA 해결책 2 : 프로젝트 구조 중 src/test/java --> 에서 src/main/test로 변경. 나도 이렇게 해결.
No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB 안드로이드 adb devices 명령어로 기기 연결되어있는지 확인 부터 해야 한다. # Reset metro bundler cache : `npx react-native start --reset-cache` # Remove Android assets cache : `cd android && ./gradlew clean` # Relaunch metro server : `npx react-native run-android` 이후에 npm run a..
🍕깊이 우선 탐색 : 미로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 이곳으로부터 다른 방향으로 다시 탐색을 진행하는 방법과 유사하다. 즉, 넓게(wide) 탐색하기 전에 깊게(deep) 탐색하는 것이다. https://gmlwjd9405.github.io/2018/08/14/algorithm-dfs.html [알고리즘] 깊이 우선 탐색(DFS)이란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 깊이 우선 탐색(DFS)이 너비 우선 탐색(BFS)보다 좀 더 간단하다. 단순 검색 속도 자체는 너비 우선 탐색(BFS)에 비해서 느리다. 최단경..
😒 BFS / Breadth-First Search / 너비 우선 탐색 너비 우선 탐색 : 하나의 정점에서 시작해서 차례로 모든 정점을 방문하게 된다. 따라서 특정 도시에서 다른 도시로 가거나, 미로의 최단 거리를 찾거나, 보통은 두 좌표 사이의 ( 노드 사이의 ) 최단 경로 혹은 임의 경로를 찾기 위해 쓴다. 🥕 구현 시, 특정 좌표 ( 노드 ) 를 방문한것에 대한 여부를 반드시 검사해야 한다. 검사하지 않는다면 무한 루프에 빠질 위험이 존재한다. 방문한 노드를 차례로 꺼낼 수 있는 자료 구조인 Queue 를 사용. 즉 선입선출이 원칙이다. 🥕 왜 최단 거리가 되는가 ? https://wikidocs.net/125662 참조 : 미로탐색과 같은 문제를 BFS를 구현하다보면, 누구나 한 번씩은 의구심을 ..
😒 test용으로 구현 java 1.8 사용 😒 에이전트의 FS 기능 개발 중 필요해서 구현. 특정 디렉토리 경로 및 모든 하위 파일을 file output stream으로 쓰면서 소스와 타겟의 바이트단위 크기를 비교한다. 재귀호출을 통해 디렉토리안의 디렉토리도 모두 확인하도록 구현. 1. static 변수를 통해 진행률 등 기록하는 방식. 2. static 변수 없이, 파라미터로 처리하는 방식. 멀티 스레드 환경에서 전역변수를 참조하면 전역변수의 값이 꼬이므로, 2번의 방식이 적합함. FileDownloaderTest.java package test; import com.gemiso.ariel.common.util.FileUtil; import java.io.*; public class FsCopyDi..