본문 바로가기
  • 철은 두드릴수록 강해지고 사람은 굴릴수록 강해진다.

전체 글40

[알고리즘(8)] Python으로 알아보는 해쉬테이블 드디어 끝이 보이기 시작하는 알고리즘 시리즈!!마지막까지 화이팅~!! [알고리즘 포스팅 순서]1. 시간복잡도2. 배열3. 연결리스트4. 스택5. 큐6. 트리7. 그래프8. 해쉬테이블9. 정렬(선택, 버블, 삽입, 퀵, 힙, 병합)10. 코테 대비 백준 문제 풀이 꿀팁  [서론]코테 문제에서 중요하게 다뤄지진 않지만 파이썬의 Dict, 자바의 Object, Map, 스위프트의 Dict 등비슷한 개념들이 유용하게 사용되고 있으니 알아두면 좋다.해쉬 테이블의 해쉬는 잘게 썰다, 엉망으로 만들다, 섞다, 잘게 썬 고기 요리 라는 뜻을 가지고 있다.따라서 해쉬 함수의 입력값의 결과는 입력값과 전혀 다른 값이 나오며 이것을 index로 삼아 사용한다.이를 가장 잘 활용한 사례가 블록체인이다. 공백하나, 온점 하나라.. 2024. 12. 21.
[알고리즘(7)] Python으로 알아보는 그래프(Graph) 취업해서 9개월만에 돌아옴 깔깔올해 안엔 이 시리즈 꼭 끝내야지  [알고리즘 포스팅 순서]1. 시간복잡도2. 배열3. 연결리스트4. 스택5. 큐6. 트리7. 그래프8. 해쉬테이블9. 정렬(선택, 버블, 삽입, 퀵, 힙, 병합)10. 코테 대비 백준 문제 풀이 꿀팁   [서론]그래프가 모든 알고리즘의 가장 근간?이라는 생각이 든다.다른 알고리즘을 설명할 때의 처음과 마지막이 되기 때문이다. 또한 코테에서 빠지지 않는 필수 문제인 DFS, BFS문제가 나오기 때문에 중요하다.   [그래프란?]그래프(Graph)란 여러 개의 점과 선으로 이루어진 수학적인 개념이다.이전 포스팅 내용인 트리(Tree)가 그래프의 한 종류이다.일상 예시로는  교통 시스템, 컴퓨터 네트워크, 컴퓨터 자원 구조 할당, 신경 학습망 구.. 2024. 12. 7.
[알고리즘(6)] Python으로 알아보는 트리(Tree) 취준 때문에 바빠서 2주만에 돌아왔다. 다시 꾸준히 글을 쓰려고 한다. [알고리즘 포스팅 순서] 1. 시간복잡도 2. 배열 3. 연결리스트 4. 스택 5. 큐 6. 트리 7. 그래프 8. 해쉬테이블 9. 정렬(선택, 버블, 삽입, 퀵, 힙, 병합) 10. 코테 대비 백준 문제 풀이 꿀팁 [서론] 난 많은 자료구조 중에서 이 '트리' 개념 때문에 초반에 자료구조의 전체적인 흐름을 이해하기가 힘들었다. 용어도 많고 종류도 많고 관련 글도 많아서 복잡해서였다. 그래서 이 답답함을 해소하기 위해 이 알고리즘 시리즈를 시작한 것이라고 해도 과언이 아니다. '트리'에 대한 모든 것을 초! 간단하게 낱낱히 파헤치고자 한다. [트리란?] 트리(Tree)란 노드들이 나뭇가지처럼 연결되어 있는 비선형 자료구조를 의미한다... 2024. 3. 31.
[알고리즘(5)] Python으로 알아보는 큐(Queue) [알고리즘 포스팅 순서] 1. 시간복잡도 2. 배열 3. 연결리스트 4. 스택 5. 큐 6. 트리 7. 그래프 8. 해쉬테이블 9. 정렬(선택, 버블, 삽입, 퀵, 힙, 병합) 10. 코테 대비 백준 문제 풀이 꿀팁 벌써 절반이나 왔다. 이번에 알아볼 자료구조는 큐(Queue)이다. 이는 나중에 많이 사용되니 기억해 둘 필요가 있는 중요한 개념이다. [큐란?] 큐는 데이터가 삽입된 순서대로 삭제도 이루어지는 자료구조이다. 컴퓨터 운영체제에서 시스템 콜이 진행될 때에도 사용된다. 큐를 한국말로 하면 '줄, 대기줄'을 의미한다. 예로 들면 게임 롤(LoL)에서 '큐를 돌린다'라는 관용 표현에서도 쓰인다. 매표소에서 줄을 선 순서대로 표를 구매하는 모습으로도 이해할 수 있다. 이를 FIFO (First In .. 2024. 3. 16.
[알고리즘(4)] Python으로 알아보는 스택(Stack) [알고리즘 포스팅 순서] 1. 시간복잡도 2. 배열 3. 연결리스트 4. 스택 5. 큐 6. 트리 7. 그래프 8. 해쉬테이블 9. 정렬(선택, 버블, 삽입, 퀵, 힙, 병합) 10. 코테 대비 백준 문제 풀이 꿀팁 오늘 알아볼 자료구조는 스택(Stack)이다. [스택이란?] 스택은 컴퓨터에서 아주 많이 사용되는 자료구조이다. 컴퓨터 메모리의 스택 영역은 함수의 호출과 관계되는 지역변수, 매개변수, 리턴 값등의 임시데이터를 저장한다. 스택이란 단어는 ‘차곡 차곡 쌓여진 더미’를 의미한다. 예를 들면 웹 페이지에서 '뒤로 가기' 버튼을 누르면 가장 최근에 보았던 페이지가 다시 나타나는 것과 같다. 이를 LIFO(Last-In First-Out, 후입선출) 구조라고 한다. 가장 최근에 들어온 데이터가 가장 .. 2024. 3. 15.
[알고리즘(3)] Python으로 알아보는 연결리스트(Linked-List) [알고리즘 포스팅 순서] 1. 시간복잡도 2. 배열 3. 연결리스트 4. 스택 5. 큐 6. 트리 7. 그래프 8. 해쉬테이블 9. 정렬(선택, 버블, 삽입, 퀵, 힙, 병합) 10. 코테 대비 백준 문제 풀이 꿀팁 오늘 알아볼 자료구조는 연결리스트이다. [연결리스트란?] 연결 리스트는 사슬처럼 여러 데이터를 연결한 것이다. 연결 리스트는 배열처럼 선형 자료 구조이지만, 연속한 메모리에 값을 저장하는 것은 아니다. 연결 리스트에서는 각각의 데이터(원소)들을 노드라고 부른다. [특징] 1. 종류로는 단일 연결 리스트(Singly Linked List), 이중 연결 리스트(Doubly linked list), 순환 이중 연결 리스트(Circular Doubly linked list)가 존재한다. 단일 연결 .. 2024. 3. 14.