
호이스팅이란? 코드가 한 줄씩 순차적으로 실행되는 시점인 런타임 이전에 자바스크립트 엔진에 의해 미리 실행되어 코드의 선두로 끌어올려진 것처럼 동작하는 자바스크립트 고유의 특징을 호이스팅이라고 한다. var뿐만 아니라 모든 식별자 (let, const, function,class)는 호이스팅 된다. 모든 선언문은 런타임 이전 단계에서 먼저 실행되기 때문 컴파일 타임에 변수, 함수 선언이 메모리에 저장된다. 할당은 코드를 작성한 위치에서 진행된다. 함수 선언 단계 1. 변수선언 : 값을 저장하기 위한 메모리 공간 확보 2. 초기화: 암묵적으로 undifined를 할당해 초기화 한다. 만약 선언하지 않은 식별자에 접근한다면 ReferenceError(참조 에러)가 발생한다. 왜 var만 호이스팅 되는것처럼 ..

자바스크립트 엔진 대표적인 자바스크립트 엔진은 구글 크롬의 V8이다. V8 엔진은 크게 두 부분으로 구성된다. Memory Heap: 메모리 할당이 이루어지는 곳, 동적으로 생성되는 객체들을 할당 구조화되지 않은 넓은 메모리 영역을 지칭한다. Call Stack: 코드가 실행되면서 스택 프레임이 쌓이는 곳 종료될 때마다 해당 스택 프레임이 팝된다. 자바스크립트는 콜스택이 하나이기 때문에 한번에 하나의 일만 처리 할 수 있다. 자바스크립트 런타임 런타임 - 해당 프로그래밍 언어로 작성된 코드가 구동되는 환경 대표적인 JavaScript 런타임: 웹 브라우저, Node.js JavaScript 엔진 - JavaScript 코드를 읽고 해석해서 실행하는 것을 담당한다. Web API - 웹 브라우저에 구현된 ..
문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 numbers return [6, 10, ..
문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 입출력 예 citations ret..
문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a..
퀵소트란? 분할 정복 방법을 통해 주어진 배열을 정렬한다. 불안정 정렬에 속하며 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. Merge Sort와 달리 Quick Sort는 배열을 비균등하게 분할한다. 기준 데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸면 어떨까? 왼쪽에서 부터 피벗보다 큰 데이터를 찾고 오른쪽에서부터 피벗보다 작은 데이터를 찾고 그 둘을 교환하자 과정 1. 배열 가운데서 하나의 원소를 고른다. 이를 피벗이라 한다. 보통 리스트에서 첫 번째 데이터를 피벗으로 정한다. 👉 호어분할 방식 2. 피벗 앞에는 피벗보다 작은 모든 원소들이 오고, 피벗 뒤에는 피벗보다 값이 큰 원소들이 오도록 피벗을 기준으로 배열을 둘로 나눈다. 👉 배열을 둘로 나누는 것 ..
INF = int(1e9) import heapq def solution(n, edge): answer = 0 distance = [INF] * (n+1) graph = [[] for _ in range(n+1)] for a,b in edge: graph[a].append(b) graph[b].append(a) #1 번부터 시작 #거리 0으로 start = 1 distance[start] = 0 #우선순위 큐에 첫 시작 점 넣는다 q = [] heapq.heappush(q,(0,start)) #큐가 빌때까지 while q: dist, x = heapq.heappop(q) #꺼내온것과 연결된것 탐방 for i in graph[x]: #갔던곳이면 무시 if dist > distance[i]: continue..
INF = int(1e9) def solution(n, results): answer = 0 graph = [[INF] * (n+1) for _ in range(n+1)] for a,b in results: graph[a][b] = 1 #자기자신으로 가는경우 0 for a in range(1, n+1): for b in range(1,n+1): if a == b: graph[a][b] = 0 #해당 노드로 오거나 갈수있으면 순위비교가 가능한것 for k in range(1,n+1): for a in range(1,n+1): for b in range(1,n+1): graph[a][b] = min(graph[a][k]+graph[k][b],graph[a][b]) count = 0 for i in range..
문제 숨바곡질을 하면서 술래로부터 잡히지 않도록 숨을 곳을 찾고 있습니다. 1~N 번까지의 헛간 중에서 하나를 골라 숨을 수 있으며, 술래는 항상 1번 헛간에서 출발합니다. 전체 맵에는 양방향 통로가 M개 존재하며, 하나의 통로는 두개의 헛간을 연결합니다. 전체 맵은 항상 다른 헛간으로 이동이 가능한 형태로 주어집니다. 00이는 1번 헛간으로부터 가장 멀리 최단 거리가 가장 먼 헛간이 안전하다고 판단합니다. 최단 거리의 의미는 지나야 하는 길의 최소 개수를 의미합니다. 동빈이가 숨을 헛간의 번호를 출력하는 프로그램을 적성하세요. 입력 조건 첫째 줄에는 N과 M이 주어지며 공백으로 구분 (2
문제 출발 지점에서 목표 지점까지 이동할 때 항상 최적의 경로를 찾도록 개발해야 합니다. 화성 탐사 기계가 존재하는 공간은 N X N 크기의 2차원 공간이며, 각각의 칸을 지나기 위한 비용이 존재합니다. 가장 왼쪽 위 칸인 [0][0] 위치에서 가장 오른쪽 아래 칸인[N-1][N-1] 위치로 이동하는 최소 비용을 출력하는 프로그램을 작성하세요. 화성 탐사 기계는 특정한 위치에서 상하좌우 1칸씩 이동할 수 있습니다. 입력조건 첫 번째 줄에 테스트 케이스의 수 T가 주어집니다. (1
- Total
- Today
- Yesterday
- 프로그래머스
- zsh compinit: insecure directories
- 그래프
- vi비정상 종료
- 파이썬
- 알고리즘
- 스왑파일
- zsh
- 최단거리
- 플로이드워셜
- arrayofodject #배열객체저장 #firestore #nestedaraay
- 다익스트라
- zsh 에러
- E325: ATTENTIONFound
- zsh환경변수
- 최단경로
- 코딩테스트
- 코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |