프로젝트 소개
Coding Problems는 알고리즘 및 코딩 인터뷰 스타일 문제에 대한 Python 3 솔루션과 선별된 학습 자료를 모아 놓은 학습 중심 저장소입니다. README에는 이 자료가 학습 및 연구 목적으로만 사용되며 프로덕션 용도가 아님을 명확히 명시하고 있습니다.
솔루션
모든 솔루션은 Python 3로 작성되었으며 내장 함수와 소수의 표준 라이브러리 모듈(math, collections, heapq, random)만 사용하므로 외부 패키지 없이 실행할 수 있습니다. 저자는 Python이 의사 코드에 가깝게 읽혀 다른 언어로 로직을 이식하기 쉽기 때문에 Python을 선택했습니다. 코드 스타일은 PEP8을 따릅니다.
각 솔루션 파일은 일관된 템플릿을 사용합니다: 문제 이름, 설명, 입출력 설명, 시간 및 공간 복잡도를 포함한 하나 이상의 솔루션 접근 방식이 포함된 docstring, 그 다음 솔루션 함수, 마지막으로 단위 테스트 프레임워크 대신 print()로 결과를 출력하는 간단한 테스트 섹션(README는 실제 테스트를 위해 unittest 또는 pytest를 더 나은 대안으로 언급)으로 구성됩니다.
문제는 다음 범주로 그룹화됩니다: 배열(정렬, 이진 검색, 분할 정복, 슬라이딩 윈도우), 연결 리스트, 트리(BST, BFS/DFS 순회), 해싱 데이터 구조(집합 및 사전), 동적 프로그래밍(1D/2D, LCS, LIS, 배낭 문제), 문자열, 수학(GCD, LCM, 인수분해, 기하), 기타(백트래킹, BFS, DFS, 스택, 큐, 덱, 힙, 행렬). 저자는 문제 자체가 LeetCode와 같은 사이트에서 가져온 것이며 솔루션과 설명만 독창적이라고 언급합니다.
학습 자료
저장소는 또한 네 그룹의 자료를 선별합니다:
- 강좌: Stanford, Princeton, UC San Diego, MIT, Harvard 및 UC Berkeley의 무료 대학 강좌로 알고리즘, 데이터 구조, 그래프 알고리즘 및 고급 주제를 다룹니다.
- 도서: Grokking Algorithms, CLRS, Sedgewick & Wayne, The Algorithm Design Manual, Dasgupta et al., Competitive Programming 3, Cracking the Coding Interview를 포함한 짧은 주석 목록.
- 연습 사이트: Codeforces, HackerRank, Topcoder, AtCoder, SPOJ, Project Euler, Kattis, Codewars, Codility 등을 포함한 긴 연습 플랫폼 목록.
- 기타 자료: Geeks For Geeks, TheAlgorithms/Python, CP Algorithms, 시각화 도구(USFCA, VisuAlgo, Algorithm Visualizer), 다양한 튜토리얼 및 YouTube 재생 목록.
README는 이슈 또는 풀 리퀘스트를 통한 버그 보고 및 개선된 구현을 환영하며 저장소가 주기적으로 업데이트된다고 언급합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.