백준 4386 별자리 만들기 js
·
Nodejs로 알고리즘 박살내기
4386번: 별자리 만들기 도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다. 별자리를 이루는 선은 서로 다른 두 별을 일 www.acmicpc.net 풀이. 별자리들의 좌표가 주어졌을 때 최소 비용으로 모든 별자리를 잇는 최소 스패닝 트리 문제입니다. union-find개념과 더불어 크루스칼 알고리즘을 공부하면 쉽게 풀 수 있는 문제입니다. union-find의 개념은 여기서 쉽게 배울 수 있습니다. 크루스칼 알고리즘은 여기서 쉽게 배울 수 있습니다. 1. 모든 별자리를 입력받고 모든 경우의 별자리 사이의 거리를 queue 변수에 담아줍니다. 2. 비용을 기준하여 오름차순 정렬해줍니다. 3. 무한 루프가 생기지..
redux-persist states migration하기.
·
사이드 프로젝트/Bitfolio
소개.Bitfolio 앱 프로젝트를 진행하면서, 서버 데이터베이스가 아닌 로컬의 스토리지에 핵심 데이터를 저장하는 구조를 채택하게 되었습니다. 그로 인해 기존 사용자들의 데이터를 최대한 안정적으로 보존하면서 마이그레이션을 진행해야 했고, 이 과정에서 꽤 신중하게 접근해야 했습니다. 시행착오도 있었지만, 그 경험을 정리해 공유해보고자 합니다. redux-persist를 사용해 persisted state를 관리하다 보면, 종종 state의 기본값을 수정하거나 새로운 { key: value } 를 추가하거나 제거해야 할 상황이 발생합니다. 이럴 때 필요한 것이 바로 마이그레이션(migration) 작업입니다. 이번 포스팅에서는 redux-persist에서 마이그레이션을 적용하는 방법에 대해 소개하겠습니다.전..
redux-persist storage로 AsyncStorage 사용하고 redux-toolkit까지 구성해보기
·
사이드 프로젝트/Bitfolio
소개.React Native로 Bitfolio 앱을 만들면서 redux 상태 관리 라이브러리를 사용하게 되어 redux-persist까지 도입하게 된 배경과 적용법까지 포스팅해 보겠습니다.도입하게 된 배경.redux의 store는 새로고침하거나, 앱을 재실행하면 state가 초기화됩니다. 하지만 상황에 따라 state의 초기화를 원치 않을 경우가 생길 수 있습니다. 예). 1. 다크 / 라이트 모드를 지원할 경우 사용자가 원하는 모드를 저장해야 할 경우. 2. 여러 개의 언어를 지원할 경우 사용자가 설정한 언어를 저장해야 할 경우. 3. 쇼핑몰 앱의 경우 비 로그인 주문 시 장바구니에 물건을 담을 경우. 주로 이와 같은 데이터는 React Native의 문서에 따르면 AsyncStorage..
백준 1738 골목길 js
·
Nodejs로 알고리즘 박살내기
1738번: 골목길 첫째 줄에 골목길들이 교차하는 지점의 개수 n (2 ≤ n ≤ 100)과 골목길의 개수 m (1 ≤ m ≤ 20,000) 이 차례로 주어진다. 이어지는 m개의 행에 각각의 골목길을 나타내는 세 정수 u, v, w가 차례로 www.acmicpc.net 이번에 풀어 볼 문제는 벨만포드 문제입니다. 문제 속에 핵심찾기. 문제를 읽어보면 어떤 경로를 갔을 때 금품을 갈취당하거나, 획득하게 됩니다. 따라서 비용이 음수인 간선과 양수인 간선이 존재하며, 금품의 양은 음수가 될 수 있다는것으로 보아 벨만포드 알고리즘을 적용하기에 적합하다는 것을 알 수 있습니다. 정답은 민승이네 집(1번 노드)에서 코레스코 콘도(N번 노드)로 금품의 양이 최대가 되는 경로를 출력하면 됩니다. ∴ 주의 할 점. 경우..
백준 2493 탑 js
·
Nodejs로 알고리즘 박살내기
2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 이번에 풀어 볼 문제는 스택 문제입니다. 풀이 스택을 이용한 풀이 과정을 간단히 한다면 다음과 같습니다. 반복문을 통해 탑(tops) 중에 왼쪽부터 시작하여 오른쪽으로 탐색하겠습니다. 탐색하는 동안 스택에는 이전에 탐색했던 탑들 중 현재 탑보다 높은 탑들과 현재 탑만 존재할 수 있도록 합니다. ∴ 따라서 if(다음 탑의 높이 > 현재탑의 높이) => 스택에 있는 높은 탑들 중 가장 근접한 탑부터 순차적으로 다음 탑과 비교 해 봅니다. 만약 스택에서 다음 탑보다..
백준 2473 세 용액 js
·
Nodejs로 알고리즘 박살내기
2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 풀이 두 용액을 먼저 선택하고 두 용액의 합한 값과 나머지 배열에서 하나의 값을 더했을 때 0에 가까운 값을 찾는 이분 탐색을 진행하였습니다. const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let N; let input = []; let min = 3000000000..