유용한 자료나 영상 올려주세요!
스코프 클로져
네트워크 기초
이벤트 루프
[javascript런타임작동방식 비동기와 이벤트루프]: https://hanamon.kr/javascript-런타임-작동-방식-비동기와-이벤트-루프/
자료구조 알고리즘 유튜브
[바킹독의 실전 알고리즘 강의]: https://www.youtube.com/watch?v=LcOIobH7ues&list=PLtqbFd2VIQv4O6D6l9HcD732hdrnYb6CY
[엔지니어 대한민국 - 자료구조 알고리즘]: https://www.youtube.com/@eleanorlim
[삼성 알고리즘 강의 사이트]코드없는 프로그래밍
알고리즘 잘푸는법
내가 알고리즘 문제를 푸는 방법
요약
## 나만의 방식으로 문제 정리하기 형식 - 문제 요약 - 입력 - ex) 변수명 : 자료형 := 변수소개 - 출력 - 어떤 결과여야하는지와 그 자료형은 무엇인지 - 처리 (주요조건) - 주요조건을 적는다. ## 알고리즘 선택 : 입력의 크기를 바탕 입력크기등 조건을 활용하여 알고리즘이 실현 가능한지 확인 ## 문제 분해 및 조합 원문제에서 마치 트리처럼 서브 문제들로 구분하자. 함수에서 함수를 빼내자 (응집도를 높인다, 의존도를 낮춘다)
코딩 문제 접근법
요약
문제 이해하기
- 완벽히 이해됐나요?
- 누군가에게 문제를 설명할수있나요?
- 무엇이 그리고 얼마나 많은 입력이 필요한가요?
- 입력에의한 결과는 무엇이어야하나요?
- 문제를 모듈 혹은 부분으로 분리할필요가있나요?
- 문제를 풀기위한 충분한 정보가 있나요? 없다면 문제다시읽으세요.
완전 탐색 솔루션을 찾아라
완전 탐색은 다른 정답을 찾기전까지 모든 문제의 정답이다.
이 방법은 매우 비효율적이지만, 작은 문제이거나 더 최적화할것이있는지 방법을 찾는 전단계로서 확인할때 좋다.
문제를 나눠라
1. 문제의 다이어그램을 손으로 그린다
2. 문제를 작은 문제로 나눈다
3. 작은 문제들을 푼다 (작은 문제들을 독립적인 함수로 만든다)
4. solution 들을 합친다
병합정렬
// 합치는 부분 함수 def merge(left, right): result = [] i = j = 0 while i < len(left) and j < len(right): if left[i] < right[j]: result.append(left[i]) i += 1 else: result.append(right[j]) j += 1 result.extend(left[i:]) result.extend(right[j:]) return result