일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자료구조
- 프론트엔드
- GraphQL
- 웹팩
- 프로세스
- 타입스크립트
- 연결리스트
- 코딩테스트
- 포인터
- C
- 컨테이너
- Machine Learning
- 연결 리스트
- APOLLO
- 릿코드
- 해시테이블
- 프로그래머스
- 자바스크립트
- 스택
- 이진탐색
- alexnet
- pytorch
- 배열
- 큐
- RxJS
- 브라우저
- vue3
- RT scheduling
- cors
- 알고리즘
- Today
- Total
목록분류 전체보기 (164)
프린세스 다이어리
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cjUmYO/btrjxB1mgra/Yhq8WN0yc9A4nyds6fLCL1/img.png)
> 문제 바로가기 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 1. 접근 방법 (1) 입력받은 n, m, graph 잘라서 준비해두기 let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); const [n, m] = input.shift().split(" "); let graph = input.map(arr => arr.split("").map(x => +x)); (2) n, m, graph 인자로 받는 BFS 함수 만들기 (3) 현..
백준은 웹사이트가 구리다. 자바스크립트로 간단한 것좀 풀어보려고 들어갔는데 언어 선택에 '자바스크립트'는 없고 대신 'node.js'가 있다. 프로그래머스처럼 핵심적인 로직 짜는 사고만 하면 되는 게 아니라 입력값을 받는 로직까지 익혀야 여기에서 문제를 풀어나갈 수 있다. 나는 극단의 초심자라 한 시간 동안이나 입력값 받아서 자르는 방법 검색하고 적용해 보았다. UI 디자인도 핵 로우 하다. 마치 이커머스 계의 쿠팡을 보는 듯하다. 자 그렇다면 백준에서 가능한 것이 무엇이 있을까. 핵심 알고리즘 로직을 익히는 데만 집중할 수 있는가? -> 아니오 뒤로가기 혹은 앞으로 가기 후 돌아왔을 때 코드가 남아있는가? -> 아니오 command + d 단축키를 지원하는가 -> 아니오 문제와 풀이를 동시에 볼 수 있..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/QBwNO/btrjkDtv7K2/JkgAOFHO9trkwrk8JFldR1/img.png)
> 문제 바로가기 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 1. 접근 방법 (1) 내림차순으로 정렬한다. let arr = citations.sort((a, b) => b - a); (2) 정렬한 배열을 반복문을 돌면서 각 논문의 인용 수와 인덱스(논문 수)를 비교한다. 논문의 인용 수가 논문 수보다 크면 논문 수를 1씩 더하고, 같으면 그 논문 수를 리턴한다. for (let i = 0; i i) { answ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dqEwd1/btrjuc1DW0l/7Atvspj5u5CAkc8G8eKjgk/img.png)
> 문제 바로가기 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 1. 접근 방법 (1) 조건을 충족하는 방식으로 compare하는 함수를 만든다. const isLeftBiggerThanRight = (left, right) => { if ((String(left) + String(right)) >= (String(right) + String(left))) { return true; } else { return false; } } (2) 퀵 정..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xEgVc/btrl8nBscKK/FqNqb6RhN8lsCtcsWZeYq0/img.png)
정렬된 배열이 있다면, 원하는 타깃 원소 또는 타깃 원소의 인덱스는 이진 탐색으로 찾는 게 시간 복잡도 최악 기준 O(logN)으로 제일 효율성이 좋다. 이진 탐색의 원리는 배열의 가운데 원소를 고르는 것부터 설명된다. const mid = Math.floor((첫 인덱스 + 마지막 인덱스) / 2); 첫 인덱스와 마지막 인덱스는 반복문을 통해 계속 바뀌므로 let으로 선언해준다. let left = 0; let right = arr.length - 1; 만약 원하는 타깃 원소가 가운데 원소랑 일치한다면 그 원소의 인덱스를 리턴해준다. if (array[mid] === target) { return mid; } 그렇지 않은 경우, 선택했던 가운데 원소가 타깃 원소보다 큰 경우와 작은 경우를 나눠 인덱스 ..
퀵 정렬은 정렬 알고리즘이다. 선택 정렬보다 훨씬 빠르고 실제로도 많이 사용된다. C언어 표준 라이브러리에는 qsort라는 함수가 있는데 이것이 바로 퀵 정렬을 구현한 함수다. 퀵 정렬은 분할 정복 전략 중에 하나다. 배열을 정렬할 때 가장 간단하고 연산이 적은 배열은 무엇일까? 바로 정렬할 필요도 없는 배열이다. [] (비어 있는 배열) [5] (원소가 하나인 배열) 비어 있는 배열이나 원소가 하나인 배열이 기본 단계가 된다. 이 경우, 배열을 있는 그대로 반환하면 된다. function quickSort(arr) { if (arr.length
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cLzyZY/btrjqmDoOLL/KgxPIAhjobDavvlTX53fJ0/img.png)
앞에 내용이랑 이어진다. > 자바스크립트는 싱글 스레드 언어라면서 어떻게 비동기 함수 사용할 수 있나요 자바스크립트는 싱글스레드 언어라면서 어떻게 비동기함수 사용할 수 있나요 자바스크립트는 기본적으로 한 번의 한 작업만 수행 가능한 싱글 스레드 언어다. 하지만 자바스크립트는 웹 브라우저나 NodeJS와 같은 멀티 스레드 환경에서 실행된다. 자바스크립트가 멀티 스레 eunjinii.tistory.com function second() { setTimeout(function() { console.log("how's everything going?") }, 2000); } function first(){ console.log("hello it's me"); second(); console.log("heyyyy..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/3VsYa/btrjnGWqw1z/NxdRb3JazcozHqBj93xLW0/img.png)
자바스크립트는 기본적으로 한 번의 한 작업만 수행 가능한 싱글 스레드 언어다. 하지만 자바스크립트는 웹 브라우저나 NodeJS와 같은 멀티 스레드 환경에서 실행된다. 자바스크립트가 멀티 스레드로 실행될 수 있도록 도와주는 장치에 대해 정리해보았다. 1. 콜백 함수가 실행되는 순서 console.log('123'); setTimeout(function() { console.log('567'); }, 300); console.log('987'); 123 987 567 여기 콘솔 로그 중간에 setTimeout이라는 함수가 있다. 이 함수는 첫 번째 인자로 들어간 함수를 두 번째 인자로 들어간 숫자만큼의 ms(밀리세컨드)를 기다렸다가 실행하도록 한다. 이 코드에 setTimeout 함수만 놓고 보면, 300m..