{"id":31103592,"url":"https://github.com/isho-0/solved-ac","last_synced_at":"2025-09-17T02:07:34.315Z","repository":{"id":311172685,"uuid":"1042723421","full_name":"isho-0/solved-ac","owner":"isho-0","description":"solved.ac 문제 해결 알고리즘을 기록하는 저장소","archived":false,"fork":false,"pushed_at":"2025-09-09T14:55:46.000Z","size":151,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-09T17:44:50.298Z","etag":null,"topics":["cc","cmakelists","cpp","cpp17","solved-ac","study-notes"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isho-0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-22T13:23:41.000Z","updated_at":"2025-09-09T14:55:50.000Z","dependencies_parsed_at":"2025-09-09T16:24:12.075Z","dependency_job_id":"b367c105-43e9-477b-ac36-36fbd3902d76","html_url":"https://github.com/isho-0/solved-ac","commit_stats":null,"previous_names":["isho-0/solved-ac"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/isho-0/solved-ac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isho-0%2Fsolved-ac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isho-0%2Fsolved-ac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isho-0%2Fsolved-ac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isho-0%2Fsolved-ac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isho-0","download_url":"https://codeload.github.com/isho-0/solved-ac/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isho-0%2Fsolved-ac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275521497,"owners_count":25479612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cc","cmakelists","cpp","cpp17","solved-ac","study-notes"],"created_at":"2025-09-17T02:07:30.650Z","updated_at":"2025-09-17T02:07:34.306Z","avatar_url":"https://github.com/isho-0.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌊 Solved.ac 문제 해결 프로젝트\n\n![Language](https://img.shields.io/badge/language-C++-blue?logo=c%2B%2B)\n![Build](https://img.shields.io/badge/build-CMake-orange?logo=cmake)\n![Testing](https://img.shields.io/badge/testing-GoogleTest-green?logo=google)\n![Progress](https://img.shields.io/badge/status-solving-informational)\n\n\u003e solved.ac의 알고리즘 문제들을 하나씩 해결하며 실력을 쌓아가는 공간  \n\u003e 꾸준함은 파도를 만든다. 오늘도 한 문제 한 문제, 알고리즘 실력을 향상시킨다.\n\n---\n\n## 🧭 개요\n\n이 저장소는 [**solved.ac**](https://solved.ac) 코딩 문제 해결사이트의 문제들을 체계적으로 해결하고 기록하는 C++ 프로젝트입니다.  \n알고리즘 문제 풀이 능력을 향상시키고, 다양한 풀이 방법을 탐색하며, Git을 통해 성장 과정을 기록합니다.\n\n---\n\n## ⚙️ 환경\n\n- **언어**: C++17\n- **빌드 시스템**: CMake 3.16+\n- **버전 관리**: Git \u0026 GitHub\n- **운영체제**: Windows / macOS / Linux (크로스 플랫폼)\n\n---\n\n## 🗂️ 프로젝트 구조\n\n\u003cpre\u003e\nsolved-ac/\n├── CMakeLists.txt          # 프로젝트 루트 CMake 설정\n├── src/                    # 소스 코드\n│   ├── CMakeLists.txt      # 소스 코드 빌드 설정\n│   ├── main.cc            # 메인 실행 파일 (간소화됨)\n│   ├── problem_manager.h/.cc # 문제 관리자 클래스\n│   └── problems/           # 문제별 개별 파일들\n│       ├── problem_1000.h/.cc\n│       ├── problem_1001.h/.cc\n│       ├── problem_2438.h/.cc\n│       ├── problem_2439.h/.cc\n│       ├── problem_2440.h/.cc\n│       ├── problem_2441.h/.cc\n│       ├── problem_2442.h/.cc\n│       ├── problem_2443.h/.cc\n│       ├── problem_2739.h/.cc\n│       ├── problem_2741.h/.cc\n│       ├── problem_2742.h/.cc\n│       ├── problem_8393.h/.cc\n│       ├── problem_10950.h/.cc\n│       └── problem_10952.h/.cc\n├── build/                  # 빌드 출력 디렉토리\n├── .github/                # GitHub 관련 설정\n├── .gitignore             # Git 무시 파일 목록\n├── .clang-format          # 코드 포맷팅 설정\n├── vcpkg.json             # vcpkg 의존성 설정\n├── LICENSE                # MIT 라이선스\n├── CODE_OF_CONDUCT.md     # 행동 강령\n└── README.md              # 프로젝트 설명서\n\u003c/pre\u003e\n\n---\n\n## 📌 학습 목표\n\n- solved.ac 문제들을 체계적으로 해결하며 알고리즘 실력 향상\n- 다양한 문제 풀이 방법과 최적화 기법 탐색\n- C++17의 모던한 기능들을 활용한 효율적인 코드 작성\n- CMake를 활용한 실전 개발 환경 경험\n- Git으로 버전 관리하며 성장 로그 남기기\n\n## 🔧 리팩토링 완료\n\n프로젝트가 **모듈화된 구조**로 리팩토링되었습니다:\n\n### ✅ 개선 사항\n\n- **main.cc 간소화**: 178줄 → 7줄로 대폭 단축\n- **문제별 파일 분리**: 각 문제가 독립적인 `.h/.cc` 파일로 분리\n- **ProblemManager 도입**: 문제들을 중앙에서 관리하는 시스템\n- **확장성 향상**: 새 문제 추가가 매우 간단해짐\n- **유지보수성 개선**: 각 문제가 독립적이라 수정이 용이함\n\n### 🏗️ 새로운 아키텍처\n\n- **단일 책임 원칙**: 각 파일이 하나의 문제만 담당\n- **개방-폐쇄 원칙**: 새 문제 추가 시 기존 코드 수정 불필요\n- **의존성 역전**: ProblemManager가 문제들을 추상화하여 관리\n\n---\n\n## 🛠️ 빌드 방법\n\n### 1. 의존성 설치\n\n```bash\n# vcpkg 설치 (macOS)\ngit clone https://github.com/Microsoft/vcpkg.git\ncd vcpkg\n./bootstrap-vcpkg.sh\n./vcpkg integrate install\n\n# Google Test 설치\n./vcpkg install gtest\n```\n\n### 2. 프로젝트 빌드\n\n```bash\n# 빌드 디렉토리 생성\nmkdir build \u0026\u0026 cd build\n\n# CMake 설정\ncmake ..\n\n# 빌드\nmake\n\n# 또는\ncmake --build .\n```\n\n### 3. 실행\n\n```bash\n# 메인 프로그램 실행\n./src/solved-ac\n```\n\n---\n\n## 🌊 Commit Convention (커밋 규칙)\n\n| 유형         | 설명                |\n|------------|-------------------|\n| `feat`     | 새로운 문제 풀이 추가      |\n| `docs`     | 문서 수정 또는 주석 추가    |\n| `refactor` | 기존 코드 개선 또는 리팩토링  |\n| `perf`     | 성능 개선             |\n| `fix`      | 버그 수정 또는 로직 수정    |\n| `chore`    | 설정 파일, 빌드 설정 등 변경 |\n\n**예시**:\n\n```bash\ngit commit -m \"feat: solved.ac 1000번 문제 풀이 완료\"\ngit commit -m \"docs: README.md 프로젝트 구조 업데이트\"\ngit commit -m \"refactor: 모듈화된 구조로 리팩토링 완료\"\ngit commit -m \"fix: 2438번 문제 출력 형식 수정\"\n```\n\n---\n\n## 📝 사용법\n\n### 새로운 문제 추가하기\n\n1. **문제 파일 생성**: `src/problems/` 디렉토리에 `problem_XXXX.h`와 `problem_XXXX.cc` 파일 생성\n2. **함수 구현**: `solve_problem_XXXX()` 함수를 구현\n3. **ProblemManager에 등록**: `src/problem_manager.cc`에서 문제 번호와 함수를 등록\n4. **완전 자동화**: CMake가 자동으로 새 파일을 찾아 빌드에 포함하고 include 문도 자동 생성\n\n**예시**:\n\n```cpp\n// src/problems/problem_2557.h\n#ifndef PROBLEM_2557_H\n#define PROBLEM_2557_H\nvoid solve_problem_2557();\n#endif\n\n// src/problems/problem_2557.cc\n#include \"problem_2557.h\"\n#include \u003ciostream\u003e\n\nvoid solve_problem_2557() {\n    std::cout \u003c\u003c \"=== 2557번 Hello World 문제 해결 ===\" \u003c\u003c std::endl;\n    std::cout \u003c\u003c \"Hello World!\" \u003c\u003c std::endl;\n    std::cout \u003c\u003c \"================================\" \u003c\u003c std::endl;\n}\n```\n\n### 프로그램 실행\n\n1. **빌드**: `mkdir build \u0026\u0026 cd build \u0026\u0026 cmake .. \u0026\u0026 make`\n2. **실행**: `./src/solved-ac`\n3. **문제 번호 입력**: 원하는 문제 번호를 입력하면 해당 문제가 실행됩니다\n\n---\n\n## ✨ 라이선스\n\n이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 [LICENSE](LICENSE) 파일을 참조하세요.\n\n---\n\n**Made with ❤️ by isho-0.**  \n*Let's ride the wave of algorithms, one problem at a time.*\n\n---\n\n## 🙋‍♂️ About Me\n\n- GitHub: [@isho-0](https://github.com/isho-0)\n- **solved.ac**: [프로필 링크 추가 예정]\n\n---\n\n## 📞 연락처\n\n프로젝트에 대한 질문이나 제안사항이 있으시면 이슈를 생성해 주세요.\n\n---\n\n**Happy Coding! 🎉**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisho-0%2Fsolved-ac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisho-0%2Fsolved-ac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisho-0%2Fsolved-ac/lists"}