일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프로그래머스 K_Digital Training
- KDT 프로그래머스 데브코스 프론트엔드
- useEffect return
- Vue3
- K_Digital Training
- 인프런 자바스크립트 알고리즘 문제풀이
- 리팩토링 회고
- Vue3 Router
- 모던 javascript Deep Dive
- 개발자 특강
- 머쓱이
- 백준 node.js
- Frontend Roadmap
- react customHook 예시
- KDT 프로그래머스
- 모던 자바스크립트 Deep Dive TIL
- 모던 자바스크립트 Deep Dive
- 투포인터알고리즘 js
- useRef 지역 변수
- 백준 js
- 우테캠 회고록
- 모던 자바스크립트 딥다이브
- react 프로젝트 리팩토링
- 프로그래머스 K_Digital Training 프론트엔드
- TypeScript 문법 소개
- frontend roadmap study
- 프로그래머스 데브코스 프론트엔드
- 모던 자바스크립트 TIL
- 프로그래머스 데브코스
- 프로그래머스 데브코스 프론트엔드 TIL
- Today
- Total
목록전체 글 (256)
프론트엔드 개발자의 기록 공간
우선 바닐라 JS상태에서 시작한다고 가정하에 환경설정하는 법을 소개하겠습니다. 우선 타입스크립트를 사용하기 위해 npm모듈을 이용하여 설치해줍니다. 글로벌 설치 : 시스템 폴더에 설치(모든 프로젝트에서 사용) npm install typescript -g 로컬 설치 : 현재 프로젝트에서만 사용 npm install typescript --save -dev 이렇게 사용자 목적에 따라 설치해줍니다. (앞으로 계속 TS사용할꺼면 글로벌 설치) 이후 tsc를 설치해줘야합니다. tsc란 typescriptcompiler입니다. TS는 JS 환경에서 실행될 수 없습니다. 왜냐하면 JS가 실행되는 브라우저가 TS코드를 이해하지 못하기 때문입니다. 위의 그림과 같이 TS코드를 JS로 바꿔줘야지만 브라우저는 인식을 하고..
백준 DFS 알고리즘 11725번_트리의 부모 찾기 난이도 : 실버II 해결못한 문제 : 시간초과 문제 설명 입출력 문제 풀이 : 이 문제는 인접 그래프 형식의 문제이다. 배열의 인덱스 자체가 노드번호를 의미하고 배열의 값이 그 노드와 인접한 다른 노드들의 인덱스번호가 들어있는 셈이다. 예를들어 [1, 6], [6, 3] 의 연결 정보가 주어졌을때 양방향 이므로 graph배열 1번의 인덱스에 6번의 값이 있고 반대로 인덱스6번에는 1과 3의 값이 있고 인덱스3에는 6번의 값이 있는 셈이다. 이해가 안된다면 인접그래프를 검색해서 원리를 찾아보면 이해가 갈 것이다. 다시 문제로 돌아가서 인접그래프로 값을 지정해준 후, 방문처리를 위한 배열, 부모노드를 담는 배열을 선언해준 후, graph의 1번 인덱스부터 ..
백준 DFS 알고리즘 2469번_안전 영역 난이도 : 실버I 문제 설명 입출력 문제 풀이 : 문제 설명을 보면 비의 높이가 주어질때 비의 높이보다 낮은 칸들은 빗금으로 그려져있고. 그 후 영역의 요소를 카운트하면 비의 높이에 따른 안전 영역의 요소가 구해진다. 하지만 비의 높이보다 낮은 칸들을 방문처리하고 그 후 다른 영역의 요소를 구하면 두번의 그래프 탐색을 해야해서 로직이 복잡해진다. 반대로 생각하여 비의 높이가 주어질때 비의 높이를 초과(문제 예시에서 4이하니깐 반대는 4초과)하는 영역을 방문처리하고 DFS의 실행횟수를 카운트하면 똑같이 안전영역의 요소를 구할 수 있다. 비의 높이는 1이상 100이하의 정수이므로 0~101의 반복문을 돌면서 DFS를 실행하면된다. 단 한번의 DFS를 실행하고 나면 ..
백준 DFS 알고리즘 2583번_영역 구하기 난이도 : 실버I 문제 설명 입출력 입출력 추가 예제 입력2 : 00 100 1 0 0 1 1 예제 출력2 : 1 9999 문제 풀이 : 이 문제는 조금 까다로워서 고려해야할 사항이 많다. 1. 문제 예시에서는 그래프의 0.0을 제일 왼쪽밑에서 부터시작한다. 수학시간에서 배운 x축 y축 좌표로 표현한다. 2. 눈금 크기가 100이하라서 재귀 DFS를 사용하면 정해진 재귀횟수를 넘어가서 런타임 에러가 발생한다. 3. 직사각형이 그려진 이외의 곳을 탐색해야한다. 크게 이 두가지 조건을 해결해야한다. 방법은 다음과 같다. 1. 기존의 0.0처럼(제일 왼쪽 위) 사용하기 위해선 입력으로 받은 x,y값을 바꿔주면된다. 이렇게 되면 상하 반전이 된다. 상하 반전이되면 원..
백준 문자열 알고리즘 10773번_제로 난이도 : 실버IV 문제 설명 입출력 문제 풀이 : input값 순서대로 계산을 해주다가 0이 나오면 마지막에 불렀던 숫자를 빼주면된다. 0이 여러개 나오게 되면 마지막에 불렀던 순으로 올라가면서 값을 빼줘야한다. 즉 마지막에 불렸던 숫자를 빼야하는데 이는 스택을 활용하면 쉽게 구현할 수 있다. 반복문을 통해 값을 체크한뒤 0이 아니라면 스택에 넣어주고 합산을 해주고 0이라면 스택에서 마지막 값을 빼주면된다. //실버4 제로 const solution = (n) => { let sum = 0; //총합 let tmp = []; //스택으로 활용 for (let i = 0; i < n; i++) { //불러주는 수가 0이 아니라면 //스택에 넣고 총합계산 if (in..
백준 DFS 알고리즘 2667번_단지번호붙이기 난이도 : 실버I 문제 설명 문제 풀이 : 이 문제도 기본 DFS 유형을 요구하는 문제이다. 그래프 전체를 순회하면서 방문하지 않았다면 (이 문제에서 1과 0은 아파트의 위치이면서 방문여부로도 활용할 수 있다.) DFS를 호출한다. 여기서 DFS내부적으로 재귀를 부를때마다 선언해둔 글로벌 변수(home)를 한개씩 카운트 해주면서 같은 단지내의 아파트 개수를 세려주고 DFS함수 호출이 끝나면 하나의 단지를 탐색한 것이기 때문에 순서대로 배열에 넣어주면된다. 이후 정렬을 하고 길이 출력을 통해 단지 개수를 파악하고 배열값을 출력하면서 단지내 아파트 개수를 출력하면 된다. //실버1 단지번호붙이기 const solution = () => { let cnt = []..
백준 DFS 알고리즘 4963번_섬의 개수 난이도 : 실버II 문제 설명 입출력 문제 풀이 : 1012_유기농 배추부분이랑 로직은 일치한다. 관련된 로직은 (ghost4551.tistory.com/27) 여기에 상세하게 설명해뒀으니 참고하면 좋을것같다. 한번더 설명하자면 DFS를 활용하여 연결된 요소를 방문처리하고 연결된 집합의 개수를 출력해주면 된다. 여기서 고려해야될게 방문처리는 그래프의 값을 0으로 초기화 시켜 해결할 수 있다. 또한 대각선 이동도 유의해야한다. //실버2 섬의 개수 const solution = () => { //별 섬의 개수 let cnt = 0; //가로 세로 배열 높이 구하기 [w, h] = input .shift() .split(" ") .map((el) => Number(..