본문 바로가기

자격증/정보처리기사

자료구조와 알고리즘

프로그래밍언어

다양한 결과값을 만들기 위해 여러가지의 명령어들을 모아놓은 언어

 

 

자료구조

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

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

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

 

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

 

✓자료의 순서가 잘 보장되는지

✓중복된 데이터가 들어갈 수 있는가

✓얼마나 효율적으로 검색할 수 있는지

✓효율적인 수정이 가능한지

 

알고리즘

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

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

-> 제공 데이터를 가장 작은 공간과 빠른 시간내에 효율적으로 처리

 

 

Big O

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

즉, 주어진 데이터를 검색하거나 정렬 또는 총점을 구하는 등의 다양한 계산을 할 수 있는 것

 

✓인풋의 사이즈가 커짐에 따른 Big O의 변화

✓공간과 시간의 복잡도는 어떤가

✓어떤 자료구조를 이용해서 알고리즘을 쓰는게 좋은지