분류 전체보기

    [JS] 호텔 방 배정

    union-find 알고리즘을 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/64063 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 자체는 이해하기 어렵지 않은 문제다. 일종의 체이닝을 만들어 주면 되는데, 유니온파인드를 통해서 부모를 큰 값으로 넣는다면 숫자를 넣을 다음 번호를 알 수 있을 것 같다. 다만 해당 문제는 K의 값이 10의 12승까지로 매우 큰 수가 나오므로 배열이 아닌 map자료형을 활용해서 구현해주었다! function solution(k, room_n..

    [JS] 도둑질

    DP를 활용한 문제였다. https://school.programmers.co.kr/learn/courses/30/lessons/42897 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 직선형인 집이었다면 조금더 쉬웠겠지만 원형이기때문에 조금 생각을 해줘야 하는 DP문제였다. 1. 첫집을 터는 경우 -> 마지막 집과 두번째 집을 털면 안된다. 2. 첫집을 털지 않는 경우 -> 두번째 집 ~ 마지막집까지만 계산하면 된다. dp를 이차원 배열로 두고 dp[i][0] -> i번째 집을 털었다고 가정했을 때의 최댓값 dp[i][1] -> i번째 집을 털지 않았다..

    [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 ..

    프로그래머스 3단계 정복~

    프로그래머스 3단계까지의 문제를 모두 풀었다! 이제는 재밌어서 하는 정도에 온거 같기도 하다. 4단계도전~

    [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} 이 방법이 가능한 이유는 합을 만들 수 있는 조합중에서 곱이 크려면 모..