본문 바로가기

Algorithm

자료구조 & 알고리즘 공부를 시작하기 전 Key Point

반응형

자료구조


서비스나 어플리케이션에서 필요한 데이터를 메모리에 어떻게 구조적으로 잘 정리해서 담아두고

관리하고 최종적으로 가장 효율적인 방식으로 필요한 데이터에 빠르게 접근하고 필한 수정 삽입 삭제할 수 있도록 도와준다

 

서비스에서 클라이언트에게 데이터를 제공하거나 어플리케이션에서 사용자에게 필요한 데이터를 보여주거나 수정할 때 효율적으로 일을 처리하기 위해서는 기능에 적합한 알맞는 자료구조를 쓰는 것이 정말 중요하다.

 

어떤 자료구조를 쓰냐에 따라 사용자가 원하는 기능을 수행하는데 천차만별 차이가 나게 된다.

종류

  • 배열
  • 단일 연결 리스트 
  • 이중 연결 리스트
  • 스택
  • 해쉬테이블

 

자료구조 공부 시 Key Point

  • 데이터들의 순서 보장 여부?
  • 중복 데이터 가능 여부?
  • 검색할 때 효율적인 정도?
  • 원하는 기능에 따라 수정할 때 얼마나 효율적인지?

 

 

 

 

 

 

 

알고리즘

제한된 공간과 시간 안에서 데이터를 어떻게 처리할 것인지 정해놓은 로직.

주어진 인풋으로 정의된 계산을 수행한 다아웃풋 결과값을 내는 것을 말한다.

 

 

시간복잡도 그래프

Big O

동일한 알고리즘의 로직으로 인풋의 사이즈가 점점 커질수록 시간이 얼마나 더 많이 걸리느냐를 정의한 시간 복잡도를 나타내는, 표기할 수 있는 방법

 

알고리즘 공부 시 Key Point

  • 인풋의 사이즈가 커질수록 Big O의 사이즈가 어떻게 변화하는지?
  • 공간과 시간의 복잡도?
  • 어떤 자료구조를 이용해 이 알고리즘을 쓰는 게 좋을지?

 

결론

문제를 풀기 전 "서점에 가서 제대로 된 서적을 사서 공부해라!"

주 언어 문법과 가장 유사한 책을 골라 매일 조금씩 꾸준히 보자.

 

자료구조 별 어떤 상황에 쓰이는지, 어떤 API가 사용되는지 큰 그림을 그려 보자!

 

 

 

코딩테스트 연습하기 좋은 추천 URL

leetcode - 릿코드

hackerRank - 해커랭크

programmers - 프로그래머스

반응형

'Algorithm' 카테고리의 다른 글

JavaScript로 코딩테스트 준비하기 (초보자 편)  (0) 2022.02.15