CS💻/DS & Algorithm
-
큐와 덱 : 순서대로 처리하기CS💻/DS & Algorithm 2025. 3. 6. 22:09
큐 초기 상태: [A, B, C, D, E, _, _, _] ^ ^ front reardequeue 후: [_, B, C, D, E, _, _, _] ^ ^ front rear 지난 시간에는 '해시 테이블'에 대해서 알아보았지요. 해시 테이블은 해시 함수를 이용해 키를 인덱스로 변환함으로써 O(1)의 시간 복잡도로 빠른 검색이 가능해졌어요.그리고 서로 다른 키에 대해 같은 인덱스 값이 나오는 '충돌'이 생겼을 때 체이닝이나 개방 주소법등의 기법을 통해 대용량의 데이터를 효율적으로 관리할 수 있게 되었어요. 해시 테이블 : 빠르게 데이터 검색하기자료구조 세번..
-
해시 테이블 : 빠르게 데이터 검색하기CS💻/DS & Algorithm 2025. 3. 5. 21:01
자료구조 세번 째 주인공은 해시 테이블 입니다. ~~ 지난 시간에는 '링크드 리스트'에 대해서 알아보았지요. 링크드 리스트 : 메모리 알뜰하게 사용하기빙글빙글 돌아가는 짱구의 하루~~ 자료구조 시리즈 두 번째는 바로 '링크드 리스트'입니다. 지난 시간에는 '동적 배열'에 대해서 알아보았습니다. 동적 배열은 '콜 스택 구조상 컴파일 전에people-analysis.tistory.com동적 배열을 사용하기 위해서는 '연속된 메모리 블록'이 필요하다는 제약'을 링크드 리스트는 각 노드가 다음 노드를 가리키는 포인터를 사용함으로써 해결했어요. 그렇다면 오늘 주인공 '해시 테이블'은 뭐 때문에 필요하게 되었는지 살펴봅시다. 레츠 기딧 ~~~ 배열과 링크드 리스트의 한계배열과 링크드 리스트는 각각의 장점을 ..
-
링크드 리스트 : 메모리 알뜰하게 사용하기CS💻/DS & Algorithm 2025. 3. 4. 22:50
빙글빙글 돌아가는 짱구의 하루~~ 자료구조 시리즈 두 번째는 바로 '링크드 리스트'입니다. 지난 시간에는 '동적 배열'에 대해서 알아보았습니다. 동적 배열은 '콜 스택 구조상 컴파일 전에 메모리 양이 정해져야 하는 한계'를 힙을 사용해 런타임에 메모리를 결정할 수 있게 해 줌으로써 해결해 줬지요?덕분에 우리는 사용자의 입력, 입,출력되는 파일 등 프로그램이 실행될 때 결정되는 것들을 유연하게 저장할 수 있게 되었어요. 동적 배열: 스택의 한계를 넘어서자료구조, 알고리즘 중요하다고들 하지만아직까지 앱을 구현할 때 해당 개념들이 엄청나게 도움이 된 적이 없다 보니 필요성을 못 느꼈는데요. ( 기업들에서 코딩 테스트를 요구하니 공부를people-analysis.tistory.com 그렇다면 링크드 리..
-
동적 배열: 스택의 한계를 넘어서CS💻/DS & Algorithm 2025. 2. 27. 19:34
자료구조, 알고리즘 중요하다고들 하지만아직까지 앱을 구현할 때 해당 개념들이 엄청나게 도움이 된 적이 없다 보니 필요성을 못 느꼈는데요. ( 기업들에서 코딩 테스트를 요구하니 공부를 하긴 해야 하는데...... )실질적인 필요를 못 느끼니 어지간히 하기 싫더군요. 그래도 하긴 해야 하니까. ( 굶어 죽지 않으려면 ) 이왕이면 좀 더 쓸모있고 재미있게 정리를 해보려고 합니다. 가봅시다. 레츠기릿동적 배열이 뭐고, 어떻게 쓰고를 알기 전에 이놈이 '왜' 필요하게 되었는지를 먼저 알아야하지 않을까요?등장 배경 : 스택의 한계우리가 작성한 프로그램이 실행되기 위해서는 운영체제로부터 메모리를 할당받은 뒤 목적에 따라 메모리 영역을 구분하여 앱을 실행하는 데 필요한 데이터들을 다루는데 사용합니다. 프로세스는 ..