-
[학습] 자료구조와 알고리즘개발 2021. 3. 24. 08:06반응형
자료구조란?
- 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미
- 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터를 구조화해야 함
효율적으로 데이터를 관리하는 예
- 우편번호: 5자리 우편버호로 국가의 기초구역을 제공
- 5자리 우편번호에서 앞 3자리는 시, 군, 자치구를 표기하고 뒤 2자리는 일련번호로 구성
- 학생 관리: 학년, 반, 번호를 학생에게 부여해서 학생부를 관리
- X학년, X반, X번 학생
- 마약 위 관리 기법이 없다면 300명 학생 중 특정 학생을 찾기 위해서는 전체 학생부를 모두 훑어야 한다.
대표적인 자료구조
- 배열, 스택, 큐, 링크드 리스트, 해쉬 테이블, 힙 등
현실 세계의 가장 대표적인 자료 구조
- 사전
알고리즘이란?
- 어떤 문제를 풀기 위한 절차 혹은 방법
- 어떤 문제에 대해서 특정한 '입력'을 넣으면 원하는 '출력'을 얻을 수 있도록 만드는 방법
- 고려사항
- 시간 (얼마의 시간이 걸리는가?)
- 공간 (얼마의 저장 공간을 차지하는가?)
현실 세계의 가장 대표적인 알고리즘
- 요리 레시피 (백종원 레시피 등)
자료구조와 알고리즘이 중요한 이유
- 어떤 자료구조와 알고리즘을 쓰느냐에 따라서 성능이 차이난다.
결국 프로그래밍을 잘 할 수 있는 기술과 역량을 익히고, 검증할 수 있다.
무엇을 활용하여 어떻게 배울 수 있는가?
- 어떤 언어로든 자료구조/알고리즘을 익힐 수 있다.
- 이전에는 무조건 C/C++로만 작성하도록 하는 경우가 많았다.
- 최근에는 언어로 인한 제약/평가는 없어졌다.
- 요즘 가장 쉽고 빠르게 자료구조/알고리즘을 익힐 수 있는 언어로 파이썬이 각광받음
- 협업에서도 파이썬은 많이 사용됨.
반응형'개발' 카테고리의 다른 글
2023년에 최신 백엔드 개발자가 되기 위한 단계별 가이드 (0) 2023.01.27 Step by step guide to becoming a modern backend developer in 2023 (0) 2023.01.27 [C#] CefSharp 기반 윈폼에서 플래시 플레이어 추가하기 (0) 2021.03.23 [C++] 입출력 속도 해결 cout, cin (0) 2021.03.23 [C++] 디버깅으로 배열에 담긴 값 확인 (0) 2021.03.23