🌓 수식의 괄호 쌍
💫 정의 32 - {6 - (2 + 4) * 7} -> {()} O 5 + {6 - (12 + 4} * 7) -> {(}) X 주어진 괄호 문자열이 올바른지/균형잡혔는지 판단하는 문제. 🫧 괄호가 한 종류일 때 안쪽부터 짝을 맞춰 지워나간다, 모두 지워진다면 올바른 문자열 여는 괄호와 닫는 괄호 수를 비교한다, 수가 다르...
💫 정의 32 - {6 - (2 + 4) * 7} -> {()} O 5 + {6 - (12 + 4} * 7) -> {(}) X 주어진 괄호 문자열이 올바른지/균형잡혔는지 판단하는 문제. 🫧 괄호가 한 종류일 때 안쪽부터 짝을 맞춰 지워나간다, 모두 지워진다면 올바른 문자열 여는 괄호와 닫는 괄호 수를 비교한다, 수가 다르...
💫 Binary-Tree 각 노드의 자식이 2개 이하인 트리 자식이 2개 이하이기 때문에 자식을 왼쪽과 오른쪽으로 구분할 수 있다. 💫 Binary-Search-Tree 자가 균형 트리가 아니라면 이진 검색 트리는 시간복잡도가 안 좋아서 써먹을 수 없다. 그런데 자가 균형 트리는 구현이 어렵다. STL을 이용하자. 만약 STL을 쓰지 못...
💫 @TODO Heap 그래프의 트리 구조 중 하나 우선순위 큐 Priority Queue를 구현할 때 사용됨 우선순위 큐는 데이터 구조의 하나로서 데이터를 자유롭게 추가할 수 있음 반면, 데이터를 추출할 때는 최솟값부터 순서대로 선택됩니다 -> 추가는 자유롭게, 추출 시 작은 값부터 꺼내는 것 힙을 표현하는 트리 구조에서는 각 정점은 ...
💫 @TODO Hash Hash Table 해쉬 함수와 함께 데이터 검색을 효율적으로 하기 위해 사용되는 구조 Key(데이터 식별자), Value(데이터의 내용)이 한 쌍을 이루는 데이터를 저장 특정 데이터가 몇 번째에 저장돼 있는지 모르므로 앞에서부터 차례대로 확인? 선형 탐색 데이터양에 비례해서 계산 시간이 늘어남 배열 탐색에 시간이 걸...
💫 @TODO Double Ended Queue 양쪽 끝에서 삽입 삭제가 전부 가능 Restricted Structure 특정 위치에서만 원소를 넣거나 뺄 수 있는 제한된 자료구조 (스택, 큐, 덱) 성질 원소 추가 O(1) 원소 제거 O(1) 제일 앞/뒤 원소 확인 O(1) 제일 앞...
💫 @TODO 한쪽 끝에서 원소를 넣고, 반대쪽 끝에서 원소를 뺄 수 있는 구조 FIFO First in First out Restricted Structure 특정 위치에서만 원소를 넣거나 뺄 수 있는 제한된 자료구조 (스택, 큐, 덱) 대기 행렬 성질 원소 추가 O(1) 원소 제거 O(1) ...
💫 정의 한 쪽 끝에서만 원소를 넣거나(PUSH) 뺄 수 있는(POP) 자료구조 Like 프링글스 통, 엘리베이터, 서류더미 LIFO Last in First out Restricted Structure 특정 위치에서만 원소를 넣거나 뺄 수 있는 제한된 자료구조 (스택, 큐, 덱) 💫 성질 원소의 추가 : O(1) 원소 제거 ...
💫 문제 🫧 Example Input/Output // IN abcd // 초기 문자열 (영어 소문자, 최대 100,000 글자) 3 // m : 명령어 수 (1 <= m <= 500,000) B // 커서 왼쪽 삭제 (커서는 처음에 문자열 맨 오른쪽에 위치해 있음) P d // d 를 커서 왼쪽에 추가 P x // x 를 커서 왼쪽...
💫 @TODO Linked-List 연결 리스트 (혹은 List 리스트) 원소를 저장할 때 그 다음 원소가 있는 위치를 포함시키는 방식으로 저장하는 자료구조 원소들은 이곳 저곳에 흩어져있다. 흩어져있기에 원하는 원소가 어디에 있는지 알 수 없음 이를테면 마지막 원소가 뭔지 바로 알 수 없음 모든 원소를 한 번 씩 읽어야 한다면 연결 리스트가 ...
💫 Data Structure 🫧 메모 Ref [바킹독의 실전 알고리즘] 0x03강 - 배열 Hello Coding 알고리즘 알고리즘 도감 복합 자료구조 연결리스트 배열 (A로 시작하는 이름 연결리스트, B로 시작하는 이름 연결리스트, … )