본문 바로가기

전체 글33

[코딩 테스트 합격자 되기 문제 38] 깊이 우선 탐색 순회 문제 설명깊이 우선 탐색으로 모든 그래프의 노드를 순회하는 함수 solution()을 작성하세요. 시작 노드는 start로 주어집니다. graph는 [출발 노드, 도착 노드] 쌍들이 들어 있는 배열입니다. 반환값은 그래프의 시작 노드부터 모든 노드를 깊이 우선 탐색으로 진행한 순서대로 노드가 저장된 리스트입니다. 제약 조건노드의 최대 개수는 100개를 넘지 않습니다.시작 노드부터 시작해서 모든 노드를 방문할 수 있는 경로가 항상 있습니다.그래프의 노드는 문자열입니다.입출력의 예graphstartreturn[['A','B'], ['B','C'], ['C','D'], ['D', 'E']]'A'['A','B','C','D','E'][['A','B'],['A','C'],['B','D'],['B','E'],['C.. 2024. 9. 26.
[코딩 테스트 합격자 되기 문제 33] 간단한 유니온-파인드 알고리즘 구현하기 문제 설명상호배타적 집합을 표현하고 관리하는 데 다음 두 연산이 필요합니다.union(x,y) : x와 y가 속한 두 집합을 합칩니다.find(x,y) : x가 속한 집합의 대표 원소를 찾습니다.operations라는 배열은 수행할 연산을 의미합니다. 연산 종류는 2개입니다.['u',1,2]는 노드 1과 노드 2에 대해 union 연산 수행['f',3]는 노드 3의 루트 노드 찾기, find 연산 수행초기의 노드는 부모 노드를 자신의 값으로 설정했다고 가정하며, 여기서는 각 집합의 루트 노드를 기준으로 루트 노드가 작은 노드를 더 큰 노드의 자식으로 연결하는 방법을 사용합니다. operations에 있는 연산을 모두 수행한 후 집합의 개수를 반환하는 solution() 함수를 구현해주세요. 제약 조건0 .. 2024. 9. 11.
[Redux/Redux ToolKit] Redux로 상태관리를 해보자 (Flux 패턴이란?) Redux는 Flux 패턴을 기반으로 한 상태 관리 라이브러리이다.⭐ React에서 상태 관리가 필요한 이유는? React는 데이터를 전달할때 부모 컴포넌트에서 자식 컴포넌트로 props를 통해 전달되는데(단방향)이렇게 여러 컴포넌트를 타고 전달하면 props drilling이 많아지고 props가 어디에서 왔는지 확인이 어렵기 때문에 상태관리를 해야한다. 📝 Flux 패턴이란?Flux는 데이터를 취급하기 위한 패턴이다. 즉, 데이터가 애플리케이션을 흐르는 방식이다.문제점Facebook에서 고질적인 알림 버그가 있었다.메시지 아이콘에 알림이 떠 있지만, 그 아이콘을 클릭해서 들어가면 아무런 메시지가 없는 버그.팀이 이 버그를 고치고 얼마동안은 괜찮았지만 [업데이트를 하다보면] 곧 다시 나타났다.단기적인.. 2024. 9. 10.
[코딩 테스트 합격자 되기] 문제 26 트리 순회 문제 설명이진 트리를 표현한 배열 node를 인자로 받습니다. 예를 들어서 nodes가 [1,2,3,4,5,6,7]이면 다음과 같은 트리를 표현한 것입니다. 해당 이진 트리에 대하여 전위 순회, 중위 순회, 후위 순회 결과를 반환하는 solution()함수를 구현하세요. 제약 조건입력 노드값의 개수는 1개 이상 1000개 이하이다.노드값은 정수형이며, 중복되지 않는다.입출력의 예nodesreturn[1,2,3,4,5,6,7]["1 2 4 5 3 6 7", "4 2 5 1 6 3 7", "4 5 2 6 7 3 1"] 정답const preorder(nodes, idx){ //전위순회(부왼오) if(idx 2024. 9. 4.
[코딩 테스트 합격자 되기] 문제 15 요세푸스 문제 문제 설명N명의 사람이 원 형태로 서 있습니다. 각 사람은 1부터 N까지 번호표를 갖고 있습니다. 그리고 임의의 숫자 K가 주어졌을 때 다음과 같이 사람을 없앱니다.1번 번호표를 가진 사람을 기준으로 K번째 사람을 없앱니다.없앤 사람 다음 사람을 기준으로 하고 다시 K번째 사람을 없앱니다.N과 K가 주어질 때 마지막에 살아있는 사람의 번호를 반환하는 solution() 함수를 구현해주세요. 제약 조건N과 K는 1이상 1000이하의 자연수입니다.입출력의 예NKreturn523 정답Class Queue{ items = []; front = 0; //앞 rear = 0; //뒤 push(item){ this.items.push(item); this.rear++;.. 2024. 9. 4.
[GitHub Pages] gh-pages 라이브러리를 활용하여 배포하기 GitHub Pages란?GitHub Pages는 GitHub에서 제공하는 무료 호스팅 서비스로, 개인, 프로젝트, 또는 조직의 웹사이트를 쉽게 호스팅(서버에 저장)할 수 있도록 해줍니다. GitHub Pages는 정적 웹사이트를 호스팅하는 데 최적화되어 있으며, 주로 HTML, CSS, 자바스크립트 파일을 사용하여 웹사이트를 구축하는 데 사용됩니다.   Vite로 생성한 React 프로젝트를 활용하여 배포하기1.프로젝트 디렉토리에서 터미널을 열고 다음 명령어를 실행npm install gh-pages --save-dev 2.vite.config.js 파일을 열고 base 옵션을 추가import { defineConfig } from 'vite'import react from '@vitejs/plugin.. 2024. 9. 2.