-
패스트캠퍼스 챌린지 13일차스터디플래너/패캠챌린지 2021. 11. 13. 17:22
Ch 17. 그래프 이해와 자료 구조 01. 그래프 이해와 자료 구조 Ch 18. 그래프 기본 탐색 알고리즘 01. 너비 우선 탐색(BFS) (1) 02. 너비 우선 탐색(BFS) (2) 03. 깊이 우선 탐색(DFS) 오늘은 그래프와 그래프 기본 탐색 알고리즘인 너비 우선 탐색과 깊이 우선 탐색에 대해 배웠다. 학원에서 교육받을 때도 느낀 거지만 정보처리기사 공부해두길 잘했다는 생각이 든다. 물론 공공기관 관련 프로젝트에 참여할 때, 정보처리기사 자격증이 있으면 프로젝트 참가자의 급여를 높게 책정할 수 있어 SI 회사가 아니면 필요 없다고 들었고, 학원 강사님께서도 공부할 필요 없다고 하셨다. 나도 오늘 그래프를 배우면서 정보처리기사를 공부할 때, 잘못 공부했구나 싶지만 그래도 학원 강의를 들으면서도 ..
-
패스트캠퍼스 챌린지 12일차스터디플래너/패캠챌린지 2021. 11. 12. 14:39
Part 2. 알고리즘 이론 Ch 16. 정렬 알고리즘 몸풀기 01. 순차 탐색 02. 이진 탐색 오늘은 정렬 알고리즘 몸풀기로 순차 탐색과 이진 탐색에 대해 배웠다. 강사님께서는 알고리즘을 공부했던 자기 경험을 바탕으로 강의 계획도 완급 조절하셨다. 병합 정렬과 퀵 정렬을 배우며 머리가 아플 수강생을 위해 쉬어가는 겸 다음 단계로 넘어가게 위한 준비로 순차 탐색과 이진 탐색을 가르쳐주신 것이다. 덕분에 나의 뇌도 쉬어갈 수 있었다. 아마 오늘도 병합 정렬이나 퀵 정렬처럼 어려운 걸 배웠다면 아마 과부하가 발생했을지도 모른다. 순차 탐색이란 말 그대로 순서대로 탐색하는 것을 말한다. 쉽게 생각하면 우리가 for문을 이용할 때를 생각하면 된다. 열 개의 정수를 담을 수 있는 배열에 1부터 10까지 입력해뒀..
-
패스트캠퍼스 챌린지 11일차스터디플래너/패캠챌린지 2021. 11. 11. 18:46
Part 2. 알고리즘 이론 Ch 15. 고급 정렬 알고리즘 03. 퀵정렬 (1) 04. 퀵정렬 (2) 오늘은 퀵정렬을 공부했다. 더 공부하고싶었으나 오늘은 아르바이트에 운동에 약속까지 있는 관계로 여기까지만 들을 수 있었다. 나는 퀵 정렬을 배울 때 병합정렬과 마찬가지로 쉭쉭 옮기기만 하면 되기때문에 개념을 이해하는게 쉽다고 생각했다. 하지만 어제 병합정렬을 배울 때, 개념을 이해하는 것과 코드로 작성하는 것 다르고, 이를 코드로 작성하는 과정을 이해하는 게 쉽지 않다는 걸 깨닫고 나니 퀵 정렬도 그럴 것 같아 걱정이 됐다. 하지만 이렇게 개념을 코드로 작성할 수 있도록 과정이라고 해야하나? 그 절차를 의사 코드로 작성하고 그걸 다시 코드로 작성하는게 알고리즘 공부라고 생각한다. 그러니 어려운 게 당연..
-
패스트캠퍼스 챌린지 10일차스터디플래너/패캠챌린지 2021. 11. 10. 22:04
Part 2. 알고리즘 이론 Ch 14. 동적 계획법과 분할 정복 01. 동적 계획법과 분할 정복 Ch 15. 고급 정렬 알고리즘 01. 병합정렬 (1) 02. 병합정렬 (2) 오늘은 동적 계획법과 분할 정복, 병합 정렬에 관해 공부했다. 동적 계획법과 분할 정복은 교재에 알고리즘이라고 되어있었지만 사실 알고리즘이라 보기 어렵고 문제를 푸는 방법이라고 하셨다. 동적 계획법과 분할 정복의 개념을 상향식, 하향식이라는 개념으로 설명했지만 비슷해서 구분하기 어렵다고 하시면서 공통점과 차이점으로 나눠 설명해주셨다. 나도 이 설명이 더 와닿고 잘 이해가 되어서 한 번 글로 정리해본다. 두 개념 모두 분할할 수 없을 만큼 가장 작은 단위로 분할해야한다는 공통점이 있다. 하지만 동적 계획법은 상향식이라는 설명처럼 작..
-
패스트캠퍼스 챌린지 09일차스터디플래너/패캠챌린지 2021. 11. 9. 14:34
Part 2. 알고리즘 이론 Ch 12. 기본 정렬 알고리즘 03. 선택정렬 04. 삽입정렬 Ch 13. 재귀용법 01. 알고리즘 해결에 중요한 재귀 호출 이해 오늘은 선택 정렬과 삽입 정렬, 재귀 용법에 대해 배웠다. 수업 시간에는 강사님이 작성하는 코드를 따라 쳤는데 각각의 알고리즘을 직접 코드로 작성해보는 게 좋을 것 같다. 이제부터 쥬피터 노트북이 아니라 인텔리 제이를 사용해서 직접 연습해 봐야겠다. 그리고 나는 학원에서 배울 때부터 그냥 생각나는 대로 코드를 일단 써보고 `실행 - 디버그`를 반복했는데, 강사님께서 알고리즘 연습하는 방법을 알려주셨다. 우아한 테크코스 시험 보면서 무작정 코드부터 작성하고 보니 시간도 많이 까먹고 좋지 않은 것 같아 알려주신 방법에 맞춰서 생각해보려고 한다. 강의..
-
패스트캠퍼스 챌린지 08일차스터디플래너/패캠챌린지 2021. 11. 8. 12:00
[오늘 진도] Part 2. 알고리즘 이론 Ch 12. 기본 정렬 알고리즘 01. 공간복잡도 02. 버블정렬 드디어 오늘은 알고리즘을 시작하는 날이다. 어제 나 자신도 기특해했지만, 강사님께서도 자료구조를 잘 마치고 여기까지 들었다며 축하와 격려를 해주셨다. 알고리즘을 듣고 나면 자료구조에서 어려웠던 부분이 왜 그렇게 나왔는지 이해가 될 거라고 하셨는데 알고리즘을 다 듣고 난 뒤 자료구조를 들을 때 어떨지 기대된다. 선택정렬과 삽입정렬의 강의 시간이 길지 않아 이 두 개도 듣고 포스팅하고 싶었지만 시간이 별로 없어서 보지 못했다. 공간복잡도는 과거 컴퓨터의 메모리가 크지 않았을 때, 작은 메모리를 효율적으로 사용하기 위해 나타난 개념이다. 컴퓨터의 용량이 커진 요즘 거의 사용하지 않지만, 빅데이터가 등장..
-
패스트캠퍼스 챌린지 07일차스터디플래너/패캠챌린지 2021. 11. 7. 13:18
[오늘 진도] Part 1. 자료구조 이론 Ch 11. 자료구조 (힙) 01. 힙 구조 1 02. 힙 구조 2 03. 힙 구조 JAVA 구현 오늘은 힙에 대해 배웠다. 강사님께서 힙은 구조를 이해하는 건 어렵지 않지만, 코드로 작성하는 게 어렵다고 하시면서 개념만 이해하고 알고리즘을 이해한 다음 코드로 구현하는 걸 들으라고 하셨다. 강의는 힙 구조1, 힙 구조2, 힙 구조 JAVA 표현 총 세 가지로 되어있는데 힙 구조2에서 이미 코드로 구현하는게 나오길래 그냥 다 들었다. 이제 정말 자료구조는 끝이다! 내가 어제인가 며칠 전 후기를 쓸 때, 부스트코스에서 배운 노드 삭제 방법과 패스트 캠프에서 배운 방법이 서로 다르다고 썼다. 오늘 힙을 배우고 나니 서로 다른 게 아니다. 부스트코스에서는 패스트 캠프에..
-
패스트캠퍼스 챌린지 06일차스터디플래너/패캠챌린지 2021. 11. 6. 11:24
[오늘 진도] Part 1. 자료구조 이론 Ch 09. 자료구조 (트리) - 03. 이진 탐색 트리 구현과 성능 평가 1 - 04. 이진 탐색 트리 구현과 성능 평가 2 오늘은 어제 배운 트리를 코드로 작성했다. 역시 어제 재밌다고 느낀 건 오늘을 위해 봐준 것 같다. 부스트코스 때, 노드를 삭제하는 걸 배웠을 때 이렇게까지 어렵진 않았는데 말이야…. 아무래도 검색이나 추가하는 것부터 다르다 보니 삭제도 다른 것 같다. 학원에서 프로젝트를 진행할 때도 느낀 거지만 같은 생각을 해도 그걸 코드로 작성하는 게 천차만별이다. 이게 프로그래밍의 매력인 것 같다. 아마 자료구조가 끝날 때까지 비교하게 되지 않을까 싶다. 그래도 알고리즘은 배우지 않았으니까 비교하지 않고 넘어갈 수 있을 것 같다. 노드를 삭제하는 ..