2023. 4. 23. 21:40ㆍ패스트캠퍼스 챌린지
1. 왜 패스트캠퍼스 JavaScript 코딩테스트 강의를듣기로 마음먹었어?😮
알고리즘은 수학적인 사고가 뛰어난 천재들이나 푸는거라고 생각해왔다.
더군다나 나는 프론트엔드 엔지니어를 꿈꾸기 때문에 알고리즘과는 거리가 멀다고 생각했다.
하지만 코드를 짤 때마다 사고의 흐름대로 작성하다보니 불필요한코드가 많아지고, 하나의 기능을 구현하기위한 또 다른 기능을 구현해야만 했고 이 과정이 매우 효율적이지않다고 생각했다.
이러한 코드들을 깔끔하게 작성하는 방법에 대해 고민하던 중 알고리즘을 통해 코드를 보다 효율적으로 작성 가능하다는 걸 알게되었고, 혼자 시작하기에는 무리가 있다고 판단하여 강의를 수강하게 되었다.
2. 강의에서는 어떤걸 배워?😮
- 코딩테스트 풀이를 위한 JavaScript 문법
- JavaScript 핵심 자료구조
- JavaScript 정렬(Sorting) 알고리즘
- JavaScript 탐욕법(Greedy) 알고리즘
- JavaScript 이진탐색 알고리즘
- JavaScript 백트래킹 알고리즘
- JavaScript DFS&BFS 알고리즘
- JavaScript 투 포인터 알고리즘
- JavaScript 누적합 알고리즘
3. 1주차에는 어떤걸 들을거야?😮
첫주차는 핵심 자료구조에 대해서 학습 할 예정이다.
목차순으로 듣는것도 좋지만 알고있는 알고리즘과 아예 모르는 알고리즘을 나눠서 모르는것을 먼저 학습하고, 알고있는걸 보강하며 수강하려고한다. 개인적으로 BFS&DFS가 이해가 어려웠기 때문에 가장 많이 보게되는 챕터가 아닐까 예상해본다.
CH 02. JavaScript 핵심 자료구조
1.자료구조의 필요성
- 데이터를 효과적으로 저장하고, 처리하는 방법에 대해 바르게 이해할 필요가 있다.
- 자료구조를 제대로 이해하지 못하면 불필요하게 메로리와 계산을 낭비할 가능성이 있다.
2.자료구조와 알고리즘의 관계
- 효율적인 기능구현을 위해서는 알고리즘이 필요하고, 효율적인 알고리즘을 설계하기 위해서는 자료구조 지식이 필요하다.
- 프로그램을 작성할 때 자료구조와 알고리즘 모두 고려해야 한다.
3.프로그램의 성능 측정 방법
- 시간 복잡도(time complexity): 알고리즘에 사용되는 연산 횟수를 측정한다.
- 공간 복잡도(space complexity): 알고리즘에 사용되는 메모리의 양을 측정한다.
- 공간을 많이 사용하는 대신 시간을 단축하는 방법이 흔히 사용된다.
4.시간복잡도별 성능차이
그래프가 Y에 가까울수록 시간복잡도가 복잡하다. 즉, 연산하는 시간이 오래걸린다
현실 세계에서는 동작 시간이 1초 이내인 알고리즘을 설계할 필요가 있다.
강의와 풀이를 병행하기위해 알고리즘 레포지토리도 새로 생성했다.
예전부터 조금씩 풀어오던 문제들을 레포지토리로 옮겨왔다.
앞으로 이 레포지토리를 알차게 채우며 알고리즘에 대한 이해와 지식을 쌓아야겠다.
https://fastcampus.co.kr/dev_online_upjscodingtest
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스 챌린지' 카테고리의 다른 글
[패스트캠퍼스] 코딩테스트 챌린지 후기 (0) | 2023.05.19 |
---|---|
패스트캠퍼스 JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기 강의 4주차 (0) | 2023.05.12 |
패스트캠퍼스 JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기 강의 3주차 (0) | 2023.05.07 |
패스트캠퍼스 JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기 강의 2주차 (0) | 2023.04.30 |