개인 문제 풀이
- 배열
- 상대적으로 매우 쉬운 난이도
- Arrays를 사용하여 배열 정보를 좀 더 쉽게 다룰 수 있었음
- 연결 리스트
- 오랜만에 다시 봐서 헷갈렸던 부분을 문제를 풀면서 다시 생각할 수 있었음
- Collection으로 주어진 LinkedList를 사용한 문제 풀이는 직접 구현한 것 보다 시간이 더 오래 소요
- 스택
- 백준을 풀면서 많이 접하였기 때문에 쉬운 난이도
- 큐
스터디 문제 풀이
- 스택 오큰 수 문제 함께 풀이
- 연결리스트를 이용하여 스택을 구현한 스터디 원의 구현 방법이 인상적
- 최대한 빠르게 풀기 위해서 코드의 구조를 생각하기 보다는 빠르게 푸는 것이 목적이었음
- 다른 사람이 클래스와 함수를 구현하여 예쁘게 코드를 작성한 것을 보고 클린 코드도 고려해봐야겠다는 생각을 함
스터디 세미나
- 그래프
- 인접 행렬
- 연결 리스트
- 그래프의 개념과 구현 방법의 장단점에 대해 집중적으로 공부할 수 있었음
- 트리
- 전 트리, 완전 이진트리, 포화 트리의 개념을 익힘
- 순회의 개념을 다시 한번 복습함
- 힙
- 내가 세미나를 진행함
- 우선순위 큐를 구현할 때 가장 시간 복잡도가 안정적이어서 삽입 삭제가 모두 필요 시 힙 정렬을 사용하는 것이 맞다고 판단
- 해시 테이블
- 해시 함수
- 해시 함수의 충돌이 가장 큰 문제라는 것을 알게됨
- 해결법은 다양하나 기본적으로 체이닝과 개방 주소법이 있다는 것을 알게 됨
느낀 점
- 문제를 풀이하면서 빠르게 펼려고만 한 것 같음
- 문제를 풀 때 왜 이 자료구조와 알고리즘을 사용해야하는지 명확한 이유를 파악하는 것이 중요할 것 같다고 느낌