자료 구조
18편
자료 구조 · 알고리즘
[자료 구조/알고리즘] 문자열
2025. 7. 25.
문자열은 연속된 문자들이 그룹화되어 구성된 자료 구조이다. 따라서 데이터를 그룹화한 추상 자료형인 컬렉션(collection)의 다양한 자료 구조로 문자열을 구조화할 수 있으며 다양한 자료 구조 탐색 알고리즘을 사용하여 부분 문자열들을 탐색 및 비교하는 등의 문제를 해결할 수 있다. <br 선형 컬렉션 <br 그래프 문자
자료 구조 · 알고리즘
[자료 구조/알고리즘] 백트래킹
2025. 7. 25.
백트래킹(backtracking)(또는 역추적) 알고리즘이란 최적의 해결책을 찾기 위해 모든 가능한 방법을 후보(candidate)로 구성한 후, 점진적으로 후보들을 시도하면서 유효한 후보가 아닐 경우(문제의 정답 조건을 만족하지 않을 경우) 문제 해결 과정에서 제외하고 되돌아가 다른 후보를 시도(백트랙)하는 과정을 반복
자료 구조 · 알고리즘
[자료 구조/알고리즘] 백트래킹 구현
2025. 7. 25.
<br N 퀸 문제 노드: 퀸들의 현재 배치 상태 간선: 한 행에서 다음 행으로 퀸을 놓는 것 가지치기: 퀸을 놓으려는 위치가 이미 다른 퀸의 공격 범위에 있는 경우 퀸을 배치하지 않는 것 루트 노드: 퀸이 놓이지 않은 초기 상태 리프 노드: 더 이상 퀸을 놓을 수 없는 최종 상태 정답인 경우: 모든 퀸이 놓인 상태 정답
자료 구조 · 알고리즘
[자료 구조/알고리즘] 연결 리스트 구현
2025. 7. 25.
단일 연결 리스트 더미 노드 미사용 <br 더미 노드 사용 <br 이중 연결 리스트 더미 노드 미사용 <br 더미 노드 사용 <br LRU(least recently used) 캐시 구현
자료 구조 · 알고리즘
[자료 구조/알고리즘] 투 포인터 기법 - 구현
2024. 7. 15.
투 포인터 기법 구현 투 포인터(two pointers) 기법은 배열과 리스트 같은 선형(linear) 자료 구조에서 데이터를 순차적으로 탐색하는데 사용되는 방법 중 하나이다. 배열이나 리스트 자료 구조에서 두 개의 서로 다른 포인터를 사용하여 자료 구조를 탐색한다. 배열 자료 구조에서 두 포인터를 각각 양쪽 끝에서 시작
자료 구조 · 알고리즘
[자료 구조/알고리즘] 논블로킹 자료 구조와 CAS
2024. 7. 12.
스레드 안전성과 동기화 프로그래밍에서 데이터 타입이나 메서드가 스레드 안전(thread safe)하다는 것은 멀티 스레드 프로그램에서 서로 다른 스레드가 동일한 데이터 타입이나 메서드에 접근하여 이를 사용하더라도 의도대로 올바르게 동작하는 것을 말한다. 동시성(concurrent) 연산이 수행되는 경우 이벤트(코드 실행)