728x90 반응형 분류 전체보기154 백준-1012번 - 유기농 배추 내가 백준 문제를 풀면서 느낀 점은 채점을 할 때 맞게 하고 싶다면 문제에서 변수들을 잘 파악해야한다는 것이다. 우선 문제를 살펴보면 테스트 케이스를 의미하는 변수 T가 존재한다. 또한 배추를 심은 배추밭의 가로길이 M, 세로 길이 N, 배추를 심은 개수 K가 존재한다. 또한 그 후 배추의 위치를 나타내는 변수론느 x, y가 존재한다. 그럼 일단 6개의 변수가 존재하는 것이다. 그 후 반복문 안에서 다음 배열 인덱스를 담아 줄 ny, nx변수와 최종 개수를 ret할 ret 변수까지 9개가 존재한다. 또한 이 문제는 깊이 탐색 문제이므로 배추의 위치를 표현할 map과 그 배열과 같은 크기의 방문 여부 배열이 필요하다. #include #include #include using namespace std; i.. c++/알고리즘 2022. 3. 29. 백준2178번-미로BFS 이 문제는 가중치가 같은 맵 안에서의 최단 경로를 찾는 문제이다. 이는 자료구조 queue를 사용하며 풀면 되는데 나의 코드는 다음과 같다. #include #include #include #include using namespace std; int n, m, y,x; int max = 104; int a[104][104]; int visited[104][104]; // 입력 배열과 방문 배열 int dy[4] = {-1,0,1,0}; int dx[4] = {0,1,0,-1}; int main() { cin >> n; cin >> m; for(int i = 0; i >a[i][j]; } }//입력 만들기 queue q; // q.. c++/알고리즘 2022. 3. 28. [TS]타입스크립트 react props intrinsic attributes 오류 React에서 나는 이 오류가 리스트를 자식 component에게 주입하려고 할 때 발생했다. 내가 구성한 component 부모 - 자식 구조는 다음과 같다. 부모 - memoList -> contens -> contenItem - 자식 다음은 내가 최상위 component memoList에서 자식 컴포넌트로 내려보내려고 한 리스트이다. 여기는 memoList의 자식 컴포넌트 contents에서 contentList를 구조 분해 할당 문법을 사용하여 받으려고 하니 발생한 react props intrinsic attributes 오류이다. 리액트에서 props는 한 객체로 내려가게 되는데 이 props객체를 구조분해하여 할당하려고하니 다음과 같은 오류가 났다. 그래서 다음과 같이 타입을 정의해주니 오류.. front-end/JavaScript, TypeScript 2022. 3. 26. React - Memoization 1. 리액트에서의 Memoization memoization이란 반복되는 연산이 많은 경우 이미 한 번 계산된 결과를 저장해두고 같은 component를 렌더링할 경우 저장해둔 값을 사용하는 방식이다. 프론트엔드는 화면에 많은 정보를 서버로부터 받아온 후 띄워야하는 과정이 있고 Dom Tree에 일부 컴포넌트가 추가되거나 삭제될 때마다 모든 Dom Tree의 값을 리렌더링해야한다는 점은 굉장히 비효율적이고 이 문제를 해결하기 위해 많은 고민을 해왔다. 그 중 React에서 렌더링 시간을 조금이라도 줄일 수 있는 방법을 제공하는 것이 오늘 소개할 React.memo, useMemo, useCallback과 같은 훅이다. 2. React.memo 우리는 흔히 화면에서 같은 디자인의 컴포넌트지만 안의 내용만 .. front-end/react 2022. 3. 26. opencv C++ BandPass Filter .BandPass Filter란? Band Pass Filter란 말 그대로 특정 영역의 주파수만 통과시키는 필터이다. 우리는 흔히 LPF HPF로 부르는 Low pass filter와 High pass filter의 혼합인데 영상에서 주파수란 흔히 변화량이라고 생각하면 되겠다. 예를 들어 바다가 넓게 펼쳐져 있는 이미지의 경우 파란색의 반복이라 주파수가 좀 낮은 영역에 해당할 것이고 사람의 머리카락을 찍은 사진의 경우 해상도가 높다면 머리카락 하나하나가 다 보일것이기 때문에 주파수가 높은 편에 속할 것이다. 또한 한 이미지안에 픽셀별로 주파수는 다르다. Low pass filter는 낮은 주파수 영역대만 통과시키고 높은 주파수 영역은 차단시킨다. 즉 상대적으로 영상에서 밋밋한 부분만을 나타내는 것이다... open-cv 영상처리 2022. 3. 24. React - React Slick 1. React Slick 소개 쇼핑몰 사이트나 OTT 서비스 사이트 같은 곳을 방문하면 영화들이 slider 형태로 돌아가는 것을 확인할 수 있다. 넷플릭스같은 사이트만 봐도 여러가지 콘텐츠를 다음과 같이 한 화면에서 오른쪽 버튼을 누르면 돌아가는 형태의 slider 형태로 콘텐츠를 제공하고 있다. 이러한 컴포넌트를 우리는 carousel이라고 한다. 한글로는 회전목마라는 뜻이다. 이 Slider형태의 컨테이너는 CSS로 구성해도 되지만 React에서는 이 Slider형 컴포넌트에 대한 라이브러리를 제공하고 있다. 바로 React Slick 이다. 2. 구현 방법 1. npm을 사용할 경우 npm install react-slick 2. yarn을 사용할 경우 yarn add react-slick 먼저.. front-end/react 2022. 3. 24. opencv c++ sobel filter 1. sobel filter sobel filter란 주파수의 방향성에 따라 필터링을 해주는 필터이다. 예를 들어 이러한 이미지의 경우 수직으로는 변화량이 거의 없지만 수평으로는 흰색 검은색이 반복하며 변화량이 큰 것을 알 수 있다. 이러한 이미지를 sobel filter에 넣고 적용하면 수평 방향으로 이미지가 나오게 된다. c++ 로 sobel filter를 구현하는 코드는 다음과 같다. Mat mySobelFilter(Mat srcImg) { int kernelX[3][3] = { -1, -1,2, -1,2,-1, 2 ,-1,-1 }; // 45도 마스크 int kernelY[3][3] = { 2,-1,-1, -1,2,-1, -1,-1,2 }; //135도 마스크 //마스크 합이 0이 되므로 1로 정.. open-cv 영상처리 2022. 3. 23. opencv c++ 가우시안 필터 opencv 라이브러리를 사용하여 c++언어로 가우시안 필터를 구현해보았다. int myKernelCon9x9(uchar* arr, int kernel[][9], int x, int y, int width, int height) //convolution { int sum = 0; int sumKernel = 0; for (int j = -1; j = 0 && (x + i) < width) { sum += arr[(y + j) * width + (x + i)] * kernel[i + 1][j + 1]; sumKernel += kernel[i + 1][j + 1]; } } } if (sumKernel != 0) { return sum / sumKernel; } //합이 1로 정규화되도록 해 영상의 밝기 변화.. open-cv 영상처리 2022. 3. 23. shell sort c++ #include #include #include #define MAX 30 #define MAX1 100000 #define MAX2 500000 #define MAX3 1000000 #define MAX4 5000000 #define MAX5 10000000 using namespace std; void shell_sort3h1(int a[], int n) { /* h = 3*h + 1 이용 */ int i, j, k, h, v; for (h = 1; h 0; h /= 3)// h의 값을 줄여가면서 계산 { for (i = h; i = h && a[j - h] > v) { a[j] = a[j-h]; j.. c++/알고리즘 2022. 3. 23. BitBucket(SSH등록) 깃허브에서 프로젝트를 관리하다가 인증 이슈가 생겨서 빗버킷으로 프로젝트를 이전해왔다. 우리 팀의 프로젝트를 나는 나의 개인 레포지토리로 fork한 후 사용하는데 이 때 fork는 문제없이 진행되었지만 ssh key를 레포지토리 안에 등록하지 않아서 로컬로 clone을 해오는데 문제가 생겼다. 따라서 BitBucket 레포지토리 안에 add key기능을 통해 이미 내 컴퓨터에 존재하던 ssh key를 등록해주어야 했다. ssh키를 만드는 방법은 구글링을 하면 쉽게 찾을 수 있으니 생략하고 ssh key를 생성하면 두 가지의 파일이 생긴다. private key와 public key가 생긴다. 나는 현재 생성한 ssh 키가 3쌍이 있는 것이다. 이렇게 만든 key중 당연히 공개 키는 public key이다... 협업 툴(git, source tree) 2022. 3. 22. JAVASCRIPT에 대한 고찰-함수편 javascript는 상당히 매력적인 언어이다. 브라우저 상에서 동작하는 언어이기 때문에 다양한 이벤트 함수들이 존재하고 다른 언어들과는 달리 비동기 처리에 특화되어 있는 면이 있다. 리액트로 개발을 하면서 나는 자바스크립트와 타입스크립트를 많이 사용했다. 하지만 항상 사용하던대로 사용했지 이 언어가 어떻게 브라우저 상에서 돌아가는 지 메모리 구조는 어떤 방식으로 할당이 되는지가 궁금해졌다. 사실 리액트로 프론트 엔드 개발을 하면 더 빠른 렌더링에 대한 고찰이 필요하다. 요즘 핫한 next sj 리액트 프레임워크또한 serverside rendering 과 staticside rendering 방식을 사용하여 더 빠른 렌더링 더 빠른 반응성에 대한 고민을 보여주고 있다. 기본을 알아야 심화를 더 잘 이해.. front-end/JavaScript, TypeScript 2022. 3. 19. 백준 9996 #include #include #include using namespace std; int n; string pattern; string filename; string pre; string back; int main() { cin >> n; cin >> pattern; for(int i = 0; i > filename; if(filename.substr(0, pre.size()) .. c++/알고리즘 2022. 3. 19. 이전 1 ··· 6 7 8 9 10 11 12 13 다음 728x90 반응형