목록2022/05 (129)
치춘짱베리굿나이스
그룹과제 #2 공식적인 내생각 밤에 잠이 쏟아져서 작성하다 말고 그냥 자버렸다... 리액트 쿼리를 사용하면서 같은 단어를 검색하면 캐싱이 되도록 분명 설정을 해놨었는데 이상하게 이전에 검색했던 단어를 또 입력했음에도 불구하고 데이터를 다시 불러오는 현상이 있었다 refetch() 이 함수때문이었다 ㅡㅡ 쓰지말자 작업 내용 리액트 쿼리 훅으로 만들기 export const useFilteredQuery = () => { const searchText = useAppSelector(getSearchText); const { data, refetch } = useQuery( ["#diseaseData", searchText], () => getDiseaseDataFiltered(searchText), { re..
그룹과제 #2 공식적인 내생각 과제 요구사항 중 로컬 캐싱은 리액트 쿼리, API 호출 횟수 줄이기는 디바운싱을 사용하면 될 듯 하다 API 응답 속도는 정말 너무나도 느린데, 제공받은 XML을 JSON으로 변환한 뒤 사용하니 1900개 가량의 데이터에서 filter 작업까지 해도 아주 짧은 시간 안에 응답이 돌아와서 아무래도 검색어 출력 및 Fuzzy matching을 위해서라면 로컬 파일을 사용하는 게 나아보인다 어째 과제를 하면서 API와의 싸움 비중이 더 커 보인다…. 솔직히 Fuzzy matching이 일종의 검색어 유추 시스템인데 API 응답 속도도 느린 상황에서 사용자의 검색어를 어떻게 바로바로 예측하고 퍼지매칭이 가능한지 잘 모르겠다 로컬 파일을 사용하지 않는 퍼지매칭 구현 방법이 궁금하다..
그룹과제 #2 공식적인 내생각 react-query에 익숙해지려고 여러 인자값 넣으면서 테스트 중인데... 과제용 API가 지나치게 느려서 내가 맞게 사용하고 있는지 체크하는 데에 너무 오래걸린다 사용법 자체는 커스텀 훅처럼 사용하면 돼서 간단한듯한데 이런저런 설정값이 까다로운 것 같다 작업 내용 react-query 찍먹 const { status, data, error } = useQuery( "#diseaseData", () => getDiseaseData(searchText), // fetch 함수, 반환값은 Promise { retry: 3, onSuccess: (response: IDiseaseData) => { console.log(response); return response; }, on..
Throttle & Debounce 예제에 useEffect가 들어가서 React 관련 게시글로 뺄까 고민해봤는데 그냥 자바스크립트 / 타입스크립트로 지정하였다 Throttle 지정된 시간 동안 함수를 최대 한 번만 호출하도록 한다 (일정 시간이 지나기 전까지 재호출을 방지한다) 특정 함수를 한번 호출했을 경우 지정한 시간 (예를 들면 1초) 이 흐르기 전까지 재호출이 되지 않도록 막는다 구현하기 ... let timeoutValue; if (!timeoutValue) { timeoutValue = setTimeout(() => { console.log(stateValue); // 여기에 throttling으로 실행시킬 함수 및 코드 배치 timeoutValue = null; // timeoutValue..
2×n 타일링 문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 풀이 const twoN = () => { let n = parseInt(require("fs").readFileSync("/dev/stdin").toString().trim()); let dp = Array.from({ length: n }, (v) => 0); dp[0] = 1; dp[1] = 2; for (let i = 2; i < n; i++) { dp[i..
RGB거리 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,..
수들의 합 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 풀이 const sum = () => { let s = parseInt(require("fs").readFileSync("/dev/stdin").toString().trim()); let sum = 0, i = 1, n = 0; while (true) { if (sum + i > s) break; sum += i; i++; n++; } console.log(n); }; sum(); 반성회 i를 1부터 1씩 늘려가면서 sum을 구한다 그러면 sum은 1 + 2 + 3 + ..
Zadanie próbne 2 문제 Wyobraźmy sobie przez chwilę, że w tym roku konkurs SKI'10 składa się z n punktowanych rund i jednej rundy próbnej. Ile zgodnie z regulaminem może się pojawić zadań w czasie całych zawodów? 입력 W pierwszej i jedynej linii znajduje się liczba naturalna n (1