분류 전체보기

    [JEST,Recoil] jest에서 recoil사용하기

    jest를 활용해서 컴포넌트 테스트를 할 때 recoil을 세팅하고 싶을 떄가 있다. 이럴때 initializeState 속성을 활용하면 해결할 수 있다. 아래 코드를 보자. Recoil을 사용하기 위해서 RecoilRoot를 씌워주고 initializeState 속성을 추가해줘서 시작할때 recoil값을 변경하는 것이 가능하다. import React from "react"; import { render, screen } from "@testing-library/react"; import { matchers } from "@emotion/jest"; expect.extend(matchers); import { RecoilRoot, useRecoilState } from "recoil"; import {..

    [JS] 길 찾기 게임

    트리구조에 대한 정확한 이해가 있어야 해결할 수 있는 문제였다. https://school.programmers.co.kr/learn/courses/30/lessons/42892# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 풀기 전에 가장 중점적으로 봐야할점은 2가지이다. 1. 한번 왼쪽으로 간 노드는 부모의 x좌표를 넘어 오른쪽으로 갈 수 없다. 2. 한번 오른쪽으로 간 노드는 부모의 x좌표를 넘어 왼쪽으로 갈 수 없다. 우선 JS의 sort함수를 활용하여 level을 기준으로 노드를 정렬해준 후 level별로 노드를 저장해주었다. [ [],..

    [JS] 디스크 컨트롤러

    heap을 이용하여 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 문제 제한사항이 널널한 편이라 sort함수를 써도 통과가 될 것 같긴 하다. ( 실제로도 다른 풀이를 보면 그런듯 ) 문제에서 중요한 점은 , 일을 처리할 수 있는 최소한의 경우의 수를 찾는 문제가 아닌 실제 테스크 큐가 작동하는 것처럼 현재 디스크가 일을 안하고 있다면 작업을 바로 수행하는게 요점이다. 따라서 테스크 큐 역할을 하는 heap을 하나 만들어서 ..

    [Jest & Router] Jest에서 Link태그 사용시 에러

    jest를 활용해서 테스트 코드를 뜨던 중 해당 에러가 발생했다. TypeError: Cannot destructure property 'basename' of 'React__namespace.useContext(...) 조금 찾아보니.. Link태그를 사용한 것이 문제가 되었다. Link 태그를 사용하려면 Router (v5라면 BrowserRouter) 로 감싸져 있어야 하는데 jest에서 감싸주지 않아서 생긴 문제였다. 따라서 가장 가벼운 라우터인 로 감싸주어서 해결했다. render( );

    [JS] 섬 연결하기

    union-find + 그리디 알고리즘을 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 문제는 그리디 알고리즘으로 해결할 수 있다. 우선 다리의 건설 비용을 오름차순으로 정렬을 해준다. 이후 정렬된 배열을 순회하며 두 다리가 연결이 안되어 있다면 연결해준다. 이 두 다리가 연결이 안되어 있는지를 확인하기 위해서 union-find 알고리즘을 활용하였다. 1. costs 배열을 비용을 기준으로 오름차순 정렬 2. co..

    [JS] 매칭 점수

    소요시간이 많이 걸린 구현 문제였다. https://school.programmers.co.kr/learn/courses/30/lessons/42893 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 특별한 알고리즘이 필요한 문제는 아니었고 문제에서 구현하라는 대로 풀면 되는 문제였는데 예외 케이스 때문에 스스로는 해결하지 못한 문제였다. 문제의 풀이 자체는 아래와 같다. 1. meta 태그에서 현재 url을 가져옴 2. a태그들을 파싱하여 외부 링크를 가져옴 3. 현재 기본 점수들을 확인함 4. 객체 형태로 외부링크,점수,최종 점수를 저장함. 이때 최종점..