본문 바로가기

프로그래밍/자료구조 & 알고리즘7

2021년 8월 20일 - Stack & Que ● 본 공부와 기록은 유튜버 '노마드 코더 Nomad Coders' 님의 "어? 재밌네? 정렬 알고리즘, 한방에 이해하기!"을 기본으로 하였다. → https://www.youtube.com/watch?v=Nk_dGScimz8&lc=z23zjhqxmozxstx0eacdp431rnmtvmda4dybmf2m1p1w03c010c ☆ Abstract Data Type - APT Stack Que → ADT는 실제로 존재하지 않고 추상적인 개념으로만 존재한다. → 실제로 프로그램 언어들에서는 존재하지 않는 일종의 '규칙'이다. → 데이터 구조가 스택 혹은 큐로 구분되기 위한 규칙들이라고 볼 수 있다. → 자료구조의 방법이 코드로 정의된 것이 아니라, 구조의 행동 양식만 정의된 것을 의미한다. → 즉, 규칙만 이해.. 2021. 8. 20.
2021년 8월 5일 - Sorting Algorithm : 버블 정렬 Bubble Sort & 선택 정렬 Selection Sort & 삽입 정렬 Insertion Sort ● 본 공부와 기록은 유튜버 '노마드 코더 Nomad Coders' 님의 "어? 재밌네? 정렬 알고리즘, 한방에 이해하기!"을 기본으로 하였다. → https://www.youtube.com/watch?v=Bor_CRWEIXo&list=PL7jH19IHhOLMdHvl3KBfFI70r9P0lkJwL&index=6 ☆ Big O의 예외 → Big O는 알고리즘의 퍼포먼스를 이해하기 쉽고 효율적으로 작성하는 방법이다. → 그러나 Big O가 모든 알고리즘을 완벽하게 설명하는 건 아니다. → 이제 설명할 알고리즘들은 같은 Big O를 가지고 있지만, 각각의 퍼포먼스가 매우 다르다. ☆ Sorting → Sorting은 뭔가를 정리하는 것이다. → 사전처럼 A~Z로 정렬하든가, 큰 수에서 작은 수 기준으로 정렬할.. 2021. 8. 5.
2021년 8월 4일 - Big O ● 본 공부와 기록은 유튜버 '노마드 코더 Nomad Coders' 님의 "개발자라면 이제는 알아야하는 Big O 설명해드림. 10분컷."을 기본으로 하였다. → https://www.youtube.com/watch?v=BEVnxbxBqi8&list=PL7jH19IHhOLMdHvl3KBfFI70r9P0lkJwL&index=5 ☆ 알고리즘의 속도를 표현하는 방법 → "빠르다", "느리다"는 시간으로 표현하지 않는다. → "초"나 "분" 단위로도 표현하지 않는다. → 같은 알고리즘이라도 컴퓨터마다 속도가 다를 수 있는데, 컴퓨터 하드웨어의 차이가 있기 때문이다. → 따라서 알고리즘의 속도는 "완료까지 걸리는 절차의 수"로 결정된다. → 그렇기에 같은 작업을 수행하는데 적은 양의 스텝을 필요로 하는 알고리즘이.. 2021. 8. 4.
2021년 8월 3일 - Binary & Linear ● 본 공부와 기록은 유튜버 '노마드 코더 Nomad Coders' 님의 "검색 알고리즘? 기초개념 잡아드림. 10분 순삭."을 기본으로 하였다. → https://www.youtube.com/watch?v=WjIlVlmmNqs&list=PL7jH19IHhOLMdHvl3KBfFI70r9P0lkJwL&index=3 ☆ 훌륭한 알고리즘 → 이번에는 왜 알고리즘이 중요한지 배우기 위해 같은 작업을 수행하는 2개의 알고리즘을 비교해볼 것이다. → 배열 안에 있는 숫자를 어떻게 찾을 수 있는지(Searching)가 오늘의 주제이다. → 자료 구조처럼 어떤 알고리즘을 선택하느냐에 따라 해당 작업을 수행하는 스피드가 굉장히 차이난다. → 완벽한 자료구조, 알고리즘 조합을 찾아내면 코드의 속도 자체가 달라진다. → 알.. 2021. 8. 3.
2021년 8월 2일 - 배열 Array ● 본 공부와 기록은 유튜버 '노마드 코더 Nomad Coders' 님의 "Array 배열 기초개념? 10분안에 정리해줌!"을 기본으로 하였다. → https://www.youtube.com/watch?v=NFETSCJON2M&list=PL7jH19IHhOLMdHvl3KBfFI70r9P0lkJwL&index=3 ☆ 시간복잡도 Time Complexity란? → 시간복잡도는 데이터 구조의 오퍼레이션 혹은 알고리즘이 얼마나 빠르고 느린지 측정하는 방법이다. → 실제 '초/분' 시간을 측정하는 것이 아니라 얼마나 많은 '단계Steps'가 있는지로 측정한다. ex) 같은 작업에 A 오퍼레이션이 5단계 요구되는 알고리즘이 B 오퍼레이션이 20단계를 요구하는 알고리즘보다 훌륭한 알고리즘이다. O(1) : 상수복잡도.. 2021. 8. 2.
2021년 7월 30일 - 알고리즘을 공부해야하는 이유 ☆ 알고리즘을 공부해야하는 이유? ➀ 대기업에 면접을 보고 들어가고 싶은 경우 → 이 경우 목적은 데이터 구조와 알고리즘을 그저 암기하는 것이 아닌, 제대로 이해하는데 있다. → 입사 후, 이런 것들을 업무에 즉각 응용하기 위함이다. ➁ 혼자 코딩을 하더라도 자신의 코드를 최적화하는 법을 배울 수 있다 → 코딩을 처음 배울 때, 데이터 구조와 알고리즘을 배울 필요는 없다. → 초심자들은 일단 코드가 굴러가게 만드는 것이 중요하다. ☆ 언제 알고리즘과 자료구조가 필요할까? → 코딩은 전부 마무리했고, 배포도 끝났으며, 소스코드에 버그는 상태다. → 그러나 여전히 어플리케이션이 느릴 때이다. → 모든 프로그래밍을 제대로 했음에도 불구하고, 어디 코드를 최적화해 어플리케이션을 빠르게 만들지 모를 경우가 바로 .. 2021. 7. 30.
2021년 7월 26일 - Hash Tables ● 본 공부와 기록은 유튜버 '노마드 코더 Nomad Coders' 님의 "개발자라면 꼭 알아야할 Hash Table 의 모든 것!"을 기본으로 하였다. → https://www.youtube.com/watch?v=HraOg7W3VAM&list=PLBJJM_3zIlbXJYnojluH5W2uPwXmEXAva ☆ HashTables란? → HashTable은 Key Value System을 이용해, 자료를 정리한다. → Key Value System의 예시로는 사전이 있다. → 단어를 찾고 = Key, 해당 단어의 뜻과 설명 = Value가 된다. ☆ HashTables와 Array(배열) 비교해보기 ex) 레스토랑의 메뉴를 배열에 저장한다면, 아래와 같을 것이다. → Pizza의 가격이 얼마인지 알고 싶다.. 2021. 7. 26.