이 저장소에는 Gayle Laakmann McDowell의 Cracking the Coding Interview 6th Edition 에 대한 C++ 및 Python 솔루션이 포함되어 있습니다. 물론 이 책에 대한 솔루션이 포함된 다른 GitHub 저장소도 있습니다. 하지만 그들의 코드가 실제로 올바른지 어떻게 알 수 있습니까? 테스트되지 않은 경우에는 그렇지 않습니다!
이 프로젝트의 모든 C++ 솔루션에는 C++ Catch 프레임워크를 사용하는 단위 테스트가 있고, 모든 Python 솔루션에는 Python 단위 테스트 프레임워크를 사용하는 단위 테스트가 있습니다. 솔루션이 모든 커밋에서 실행되고 테스트되는 살아있는 코드로 구성되도록 보장하는 지속적인 통합 서버를 사용하여 자동으로 테스트 정확성을 강화합니다. 내가 아는 바로는 이 수준의 엄격한 테스트를 갖춘 인터넷 유일의 솔루션 저장소입니다. 90%가 넘는 자동화된 테스트 범위는 자신 있게 솔루션을 참조하고 기여할 수 있다는 의미입니다.
9 / 9
완료.8 / 8
완료.4 / 6
완료.11 / 12
완료.7 / 8
완료.0 / 10
완료.0 / 12
완료.8 / 14
완료.0 / 8
완료.10 / 11
완료.0 / 6
완료.10 / 11
0 / 7
완료.0 / 4
완료.11 / 26
완료.1 / 26
완료.2
회 완료. C++ 전체: 81
솔루션이 완료되었습니다.
9 / 9
완료.8 / 8
완료.6 / 6
완료.11 / 12
완료.7 / 8
완료.0 / 10
완료.0 / 12
완료.11 / 14
완료.0 / 8
완료.1 / 11
완료.0 / 6
완료.0 / 7
완료.2 / 26
완료.3 / 26
완료. Python 전체: 58
솔루션이 완료되었습니다.
139
고유한 솔루션이 완성되었습니다.Mac을 사용하려면 Makefile에서 수행되는 패키지 관리자 Homebrew 및 Pip를 설치해야 합니다.
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git ctci
cd ctci
make configure-mac
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
make configure-ubuntu
Windows 사용자의 경우 Windows 10의 WSL(Linux용 Windows 하위 시스템) 기능을 사용하여 이 프로젝트를 개발한 다음 WSL 내에서 Ubuntu 빌드 및 테스트 지침을 따르는 것이 좋습니다. 이 권장 사항은 코드 변경 사항을 자동으로 테스트하는 서버의 Ubuntu, CMake 및 makefile 기반 빌드 및 실행 시스템을 사용하기 때문입니다. Windows 개발에 대한 자세한 내용은 이 페이지 끝에 있는 Appendix
섹션을 참조하세요.
테스트는 이 프로젝트에서 가장 중요한 부분입니다. 단위 테스트 만 이 해결 중인 문제를 정의합니다. 루트 디렉터리에서 다음을 실행하여 Python 및 C++에서 모든 테스트를 실행합니다.
make test
make test
제가 이 프로젝트를 개발하면서 가장 많이 사용하는 명령어입니다. 내 작업 흐름은 다음과 같습니다.
make test
실행합니다.make test
성공할 때까지 문제 해결의 구현을 추가합니다.그러면 각 Python 소스 파일의 테스트에서 다루지 않는 줄이 정확히 표시됩니다.
pip install coverage
make test_coverage
이 프로젝트의 목표는 교과서 6판의 모든 문제에 대해 테스트된 Python 및 C++ 솔루션을 작성하는 것입니다. 꼭 도움이 필요하므로 PR을 환영합니다. 각 솔루션을 테스트하려면 자체적인 소규모 데이터 세트와 인프라가 필요하기 때문에 해야 할 일이 많습니다. 다음은 귀하가 도울 수 있는 몇 가지 방법입니다.
기여한 내용이 있으면 master
브랜치에 PR을 해주세요. 위 항목에 대한 설명을 원하시면 언제든지 저에게 메시지를 보내주세요.
내 Windows 컴퓨터에서는 Windows에서 기본적으로 실행되는 CLion을 사용하여 개발하고 WSL 터미널 창에서 make test
사용하여 코드를 테스트합니다. WSL을 사용하고 싶지 않은 사용자를 위해 아래 빌드 및 테스트 방법을 개발했습니다.
이 프로젝트는 Visual Studio 2017을 사용하여 WSL 없이 Windows에서만 개발할 수 있습니다. 먼저 코드를 복제합니다.
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
그런 다음 선택한 방법을 사용하여 Python3 및 numpy를 설치하십시오. 저는 공식 웹사이트에서 Python3과 pip3를 설치한 다음 pip를 통해 numpy를 설치하는 것을 선호합니다.
pip install numpy
그런 다음 CMake를 지원하는 Visual Studio 2017에서 프로젝트를 엽니다. 저는 Visual Studio를 사용하여 코드를 편집하고 디버깅 기능을 사용하는 것이 가장 좋은 워크플로라는 것을 알았습니다. 코드를 빌드하기 전에 다음 지침에 따라 Visual Studio에 필요한 PDB를 다운로드하도록 지시해야 합니다. 또한 관심이 있는 경우 이 문서에서는 Visual Studio CMake 지원에 대해 자세히 설명합니다. 루트 프로젝트 디렉터리의 CMakeSettings.json 파일은 Visual Studio 빌드 폴더의 위치를 프로젝트의 루트 폴더 내에 있도록 설정합니다.
CMake 모드의 VisualStudio에서는 이 게시물에 설명된 대로 CTRL + F5를 눌러도 tests.exe
및 tests.py
파일의 콘솔 출력이 계속 표시되는 것을 허용하지 않기 때문에 테스트를 실행하고 출력을 보는 것은 PowerShell 창에서 수행하는 것이 가장 좋습니다. "일반적인" Visual Studio 사용에 적용됩니다. 저는 Visual Studio에서 상황을 모니터링하고 있으며 더 나은 솔루션을 찾으면 이를 구현하거나 게시할 것입니다. 혹시 더 좋은거 아시면 연락주세요.
그동안 프로젝트 루트 디렉터리에서 다음을 사용하여 Python 테스트를 실행할 수 있습니다.
python tests.py
... 그리고 다음을 사용하여 C++ 테스트를 실행할 수 있습니다.
.buildx64-Debugtests.exe