var: 함수 스코프를 가짐: 함수 내에서 선언된 변수는 함수 내에서만 유효함. 호이스팅(hoisting): 변수 선언이 스코프의 맨 위로 옮겨짐. 재선언 가능: 같은 변수를 여러 번 선언할 수 있음. 키워드 생략 가능 사용 사례: 과거의 JavaScript 코드에서 주로 사용됨. 함수 스코프를 가지므로 함수 내 어디서든 접근 가능한 변수를 선언할 때 사용됨. 장점: 호이스팅에 의해 변수 선언이 스코프의 맨 위로 끌어올려짐. 변수를 여러 번 선언할 수 있어도 오류가 발생하지 않음. 단점: 함수 스코프를 가지므로 블록 레벨 스코프를 만들 수 없음. 값이 재할당될 수 있어서 예기치 못한 버그를 유발할 수 있음. 긴 생명주기 중복 선언(변수에 예상치 않은 값이 들어있을 수 있음) let: 블록 스코프를 가짐:..

vscode에서 익스텐션을 설치하는데 현재 vscode 버전과 호환되지 않는다는 메세지가 출력되었다. 자동 업데이트라 분명 최신 버전일텐데.. 이게 뭐지 싶어서 버전을 확인해봤더니 최신 버전이 아니다.. 개발할 때 종종 권한 문제로 오류가 나서 '항상 관리자 권한으로 실행'으로 설정해놨는데, 그러면 업데이트가 비활성화 된다.. 관리자 권한을 해제하고 실행하거나, 아래의 명령어로 업데이트 해주자. winget upgrade --id Microsoft.VisualStudioCode
python으로 큐를 사용해야하는 알고리즘 문제를 풀 때, Queue 대신 deque를 사용하라고 한다. deque가 더 빠르기 때문인데, 왜일까? Queue와 deque의 차이를 알아보자. Queue: Queue 클래스는 파이썬의 표준 라이브러리에서 제공하는 멀티스레딩 환경에서의 안전한 큐 구조체이다. 이는 스레드 간에 안전하게 데이터를 공유할 수 있도록 설계되어있다. Queue는 내부적으로 락(lock)을 사용하여 여러 스레드에서의 동시 접근을 제어한다. from queue import Queue # Queue 인스턴스 생성 my_queue = Queue() # 큐에 아이템 추가 my_queue.put(1) my_queue.put(2) my_queue.put(3) # 큐에서 아이템 제거 item = ..
백트래킹은 일종의 DFS 기반 알고리즘으로, 문제 해결 과정에서 해를 찾기 위해 후보군을 검사하다가 조건을 만족하지 않으면 이전 단계로 돌아가 다른 후보군을 찾는 기법이다. 주로 조합, 순열, 부분집합 등을 구하는 문제에서 사용된다. 백트래킹은 유용한 문제 해결 기법 중 하나로, 많은 NP-hard 문제에 적용될 수 있다. 백트래킹의 기본 아이디어 상태 공간 트리(State Space Tree): 문제의 해를 트리 구조로 표현한다. 각 노드는 문제의 한 상태를 나타내며, 간선은 상태 간의 전이를 나타낸다. 프로모션(promising): 해당 노드에서 유망한지 검사한다. 즉, 현재 상태에서 해를 찾을 가능성이 있는지를 확인한다. 가지치기(cutting off): 유망하지 않은 노드의 서브트리는 검사하지 않..
설명 모노톤 스택(Monotonic Stack)은 주어진 배열에서 각 원소에 대해 다음에 올 원소를 찾거나, 또는 이전에 올 원소를 찾는 데에 사용되는 자료 구조이다. 주로 "더 큰 원소를 찾아라" 또는 "더 작은 원소를 찾아라"와 같은 상황에서 유용하게 활용된다. 모노톤 스택의 두 가지 유형: 단조 증가 스택 (Increasing Monotonic Stack): 스택에 원소를 추가할 때, 스택의 맨 위에 있는 원소보다 큰 값을 가진 원소만 추가한다. 이 스택은 "더 큰 원소를 찾아라"와 같은 상황에서 사용된다. 단조 감소 스택 (Decreasing Monotonic Stack): 스택에 원소를 추가할 때, 스택의 맨 위에 있는 원소보다 작은 값을 가진 원소만 추가한다. 이 스택은 "더 작은 원소를 찾아..
RDBMS (Relational Database Management System) 특징: 테이블 기반 구조: RDBMS는 테이블 형식의 데이터 모델을 기반으로 합니다. 데이터는 열과 행으로 이루어진 테이블에 저장되며, 각 테이블은 고유한 키(primary key)로 식별됩니다. 스키마: 데이터의 구조를 정의하는 스키마가 있어, 데이터의 일관성과 무결성을 보장합니다. SQL(Query Language): RDBMS는 SQL을 사용하여 데이터를 조작하고 검색하는데에 특화되어 있습니다. ACID 특성: 트랜잭션의 원자성, 일관성, 고립성, 지속성을 보장하는 ACID 특성을 갖습니다. ACID 설명: 더보기 ACID (Atomicity, Consistency, Isolation, Durability) 특성: 원..