분류 전체보기
[JS] 소가 길을 건너간 이유6
그래프와 DFS를 활용한 풀이 https://www.acmicpc.net/problem/14466 14466번: 소가 길을 건너간 이유 6 첫 줄에 N, K, R이 주어진다. 다음 R줄에는 한 줄에 하나씩 길이 주어진다. 길은 상하좌우로 인접한 두 목초지를 잇고, r c r′ c′의 형태 (행, 열, 행, 열)로 주어진다. 각 수는 1 이상 N 이하이다. www.acmicpc.net 소와 소를 만나는 과정을 DFS를 활용해서 구하되 가는 길에 다리가 있다면 건너지 않으면 된다. 1. 그래프 설정하기 2. 소를 1:1 대응으로 찾을 수 있는지 분리 3. 각 대응마다 DFS를 활용하여 소에서 소로 갈 수 있는지 확인 includes는 배열의 1차까지만 비교하기 때문에 find를 활용해서 찾아야 한다! con..
[React] TanStack(React-Query) DeepDive 해보기
react-query는 상당히 많이 사용되는 상태관리 라이브러리 중 하나이다. 하지만 어느정도 곁눈길로 사용하는 경우가 많다.(필자 역시) 23.10.17 에 react-query가 tabstack으로 새로 릴리즈 되었는데 이부분을 공부할 겸 React-Query가 뭔지 한번 깊게 공부해 보려 한다. TanStack(REACT-QUERY)가 뭔데?!! 먼저, TanStack의 공식 홈페이지에서는 해당 라이브러리를 아래와 같이 소개하고 있다. TanStack Query (FKA React Query) is often described as the missing data-fetching library for web applications, but in more technical terms, it makes ..
[JS] 최고의 집합
그리디를 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 언뜻 보면 조합으로 탐색을 해야할 것 같지만 그리디로 해결할 수 있다. S란 수를 N개로 나누면 우선 S를 N으로 나누어 준다. 9를 5개로 나눠보자. 9/5 -> 1.xxxx {1,1,1,1,1} 여기서 9%5 는 4이다. 따라서 뒤에서부터 4개의 값에 1씩 더해주면 된다. {1,2,2,2,2} 이 방법이 가능한 이유는 합을 만들 수 있는 조합중에서 곱이 크려면 모..
[NextJs] Next.js14에 styled components 적용하기
Next.js 에 styled components를 적용하는 것 자체는 그렇게 어렵지 않았지만 어느정도 알고 있어야할 사전 지식이 있다. 아래 문서는 Next.js에서 제공하는 공식문서 중 css-in-js를 설정하는 방법들에 대해 다룬다. https://nextjs.org/docs/app/building-your-application/styling/css-in-js#styled-components Styling: CSS-in-JS | Next.js Use CSS-in-JS libraries with Next.js nextjs.org 문서 처음부터 아래와 같이 경고를 해주고 있다. 요약하자면, NextJS 13버전 이후로 react18의 서버컴포넌트와 같은 서버사이드렌더링 기법들이 많이 추가되었는데 그중..
[JS] 가장 긴 팰린드롬
3단계 치고는 간단(?) 한 문제였다. https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 특별한 알고리즘 기법이 들어가진 않았다. 펠린드롬은 짝수인 경우와 홀수인 경우 두가지가 존재한다. 문자열을 처음부터 순회하며 해당 점을 꼭지점으로 삼아 만들 수 있는 홀수인 펠린드롬과 짝수인 펠린드롬의 개수를 갱신해나가면 된다. function solution(s) { const getPalindromeCnt = (start,end) => { let l..