반응형
자료구조
서비스나 어플리케이션에서 필요한 데이터를 메모리에 어떻게 구조적으로 잘 정리해서 담아두고
관리하고 최종적으로 가장 효율적인 방식으로 필요한 데이터에 빠르게 접근하고 필한 수정 삽입 삭제할 수 있도록 도와준다
서비스에서 클라이언트에게 데이터를 제공하거나 어플리케이션에서 사용자에게 필요한 데이터를 보여주거나 수정할 때 효율적으로 일을 처리하기 위해서는 기능에 적합한 알맞는 자료구조를 쓰는 것이 정말 중요하다.
어떤 자료구조를 쓰냐에 따라 사용자가 원하는 기능을 수행하는데 천차만별 차이가 나게 된다.
종류
- 배열
- 단일 연결 리스트
- 이중 연결 리스트
- 스택
- 해쉬테이블
자료구조 공부 시 Key Point
- 데이터들의 순서 보장 여부?
- 중복 데이터 가능 여부?
- 검색할 때 효율적인 정도?
- 원하는 기능에 따라 수정할 때 얼마나 효율적인지?
알고리즘
제한된 공간과 시간 안에서 데이터를 어떻게 처리할 것인지 정해놓은 로직.
주어진 인풋으로 정의된 계산을 수행한 다아웃풋 결과값을 내는 것을 말한다.
Big O
동일한 알고리즘의 로직으로 인풋의 사이즈가 점점 커질수록 시간이 얼마나 더 많이 걸리느냐를 정의한 시간 복잡도를 나타내는, 표기할 수 있는 방법
알고리즘 공부 시 Key Point
- 인풋의 사이즈가 커질수록 Big O의 사이즈가 어떻게 변화하는지?
- 공간과 시간의 복잡도?
- 어떤 자료구조를 이용해 이 알고리즘을 쓰는 게 좋을지?
결론
문제를 풀기 전 "서점에 가서 제대로 된 서적을 사서 공부해라!"
주 언어 문법과 가장 유사한 책을 골라 매일 조금씩 꾸준히 보자.
자료구조 별 어떤 상황에 쓰이는지, 어떤 API가 사용되는지 큰 그림을 그려 보자!
코딩테스트 연습하기 좋은 추천 URL
반응형
'Algorithm' 카테고리의 다른 글
JavaScript로 코딩테스트 준비하기 (초보자 편) (0) | 2022.02.15 |
---|