cf, (1)은 강의 소개
1. 자료구조란?
- a.k.a 자료구조, 데이터 구조, data structure
- 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미
//현실 세계의 정보를 프로그래밍에서 사용하기 위해 데이터를 컴퓨터에 저장하는 구조
- 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터의 특성에 따라, 체계적으로 데이터를 구조화해야 함
- 어떤 데이터 구조를 사용하느냐에 따라, 코드 효율이 달라짐
ex. 효율적으로 데이터를 관리하는 예
- 우편번호 : 5자리 우편 번호로 국가의 기초구역 제공
= 앞 3자리는 시,군,자치구 + 뒤 2자리는 일련번호
// 이렇게 한 국민의 주소를 일정 데이터 구조를 이용해서 쉽게 관리할 수 있다
- 학생관리 : 학년, 반, 번호를 학생에게 부여해서 학생보를 관리
= 학년, 반, 번 학생
// 이런 방법을 통해 특정 학생을 쉽게 찾을 수 있다
대표적인 자료구조
-배열, 스택, 큐, 링크드 리스트, 해쉬 테이블, 힙 등
// 이렇게 많이 사용되는 자료구조를 익혀서 내가 필요한 자료구조를 만들 수 있다
// 기술면접 등에서 아주 많이 물어본다
cf. 현실 세계의 가장 대표적인 자료구조 : 사전
2. 알고리즘이란?
- 용어: 알고리즘
- 어떤 문제를 풀기 위한 절차/방법
- 어떤 문제에 대해 특정한 입력을 넣으면 원하는 출력을 얻을 수 있도록 만드는 프로그래밍
cf. 현실 세계의 가장 대표적인 알고리즘 : 백종원 레시피
// 문제를 풀 때 방법은 각양각색인데 어떤 알고리즘이 더 좋은지 판단하는 기준: 시간, 저장공간
=> 그러므로 어느 정도 시간, 저장공간을 차지하는지 계산할 수 있어야 한다
3. 자료구조와 알고리즘이 중요한 이유
: 어떤 자료구조, 알고리즘을 쓰느냐에 따라 성능이 천지차
결국 프로그래밍을 잘할 수 있는 기술과 역량을 익히고, 검증할 수 있다.
4. 자료구조/알고리즘, 그리고 파이썬
- 어떤 언어로든 자료구조/알고리즘 익힐 수 있음
- 예전에는 무조건 C, C++
- 최근에는 언어로 인한 제약/평가는 없어짐
그러므로 가장 쉽고 빠르게 자료구조/ 알고리즘을 익힐 수 있는 언어: 파이썬
현업에서도 많이 사용됨.
1)anaconda 설치
: 파이썬 기본 컴파일러, 주요 라이브러리, jupyter notebook 설치 가능
2)anaconda 설치 안되면
: 파이썬 컴파일러 설치한 뒤 cmd에 pip install --upgrade pip, pip install jupyter로 주피터 노트북 설치
5.주피터 노트북이란?
- 파이참은 전체를 모두 작성한 다음에 실행을 해야 하는 반면
주피터 노트북은 한줄한줄 코드 실행 결과 확인이 쉽다
- 문서와 코드를 함께 작성/저장할 수 있다
=> 즉 복잡한 자료구조/알고리즘을 보다 쉽게 정리하고 익히기 위해 사용
윈도우의 아나콘다의 항목 중 주피터 노트북을 실행할 수 있다
6. 주피터 사용하는 방법
- 내 폴더들과 연결해서 화면에 보여준다
- new : 새로운 파일 만들 수 있음
- 파일에 들어가서 제목을 클릭하면 제목 바꿀 수 있음
- 셀에 코드를 칠 수 있다
- 위의 재생 버튼 또는 shift + enter을 눌러 코드를 실행할 수 있다
- 실행이 끝나면 In [숫자]가 나오는데 만약 In [*]이 나오면 아직 코드가 실행이 끝나지 않았다는 뜻
그때는 중단 버튼을 누르면 다음 셀에 입력을 할 수 있다.
- 한번 파일 안에 실행된 코드는 다른 셀에서도 사용할 수 있다
- 셀의 순서 바꾸기 : 해당 셀 위에 만들고 싶으면 a, 아래 만들고 싶으면 b / insert above, below도 가능
- code항목을 markdown으로 바꾸면 코드가 아니라 문서로 사용할 수 있다(but 이는 마크다운 문법을 알아야 한다 ex. 앞에 #을 넣으면 글자 크기 조절이 가능하다)
'자료구조 알고리즘 : 코딩테스트' 카테고리의 다른 글
[이것이 취업을 위한 코딩테스트다] 12/28 (0) | 2023.12.29 |
---|---|
[이것이 취업을 위한 코딩테스트다] 05. DFS/BFS (0) | 2023.12.29 |
[알고리즘]패캠 알고리즘- #1. 자료구조 이론 (6) 배열 (0) | 2021.05.26 |
[알고리즘] 패캠 알고리즘/기술면접 패키지 : 잔재미코딩 (0) | 2021.05.21 |