├── .github └── workflows │ └── auto_update_table.yml ├── .gitignore ├── LEVEL1 ├── README.md ├── header.md └── list.md ├── LEVEL2 ├── README.md ├── header.md └── list.md ├── LEVEL3 ├── README.md ├── header.md └── list.md ├── LEVEL4 ├── README.md ├── header.md └── list.md ├── LEVEL5 ├── README.md ├── header.md └── list.md ├── LICENSE ├── README.md ├── markdown ├── footer.md ├── header.md ├── list.md └── updatelog.md ├── scripts ├── make_readme.py ├── make_table.py └── update_solution.py └── solution ├── LEVEL1 └── 42576 │ └── main.cpp └── LEVEL2 └── 60057 └── main.cpp /.github/workflows/auto_update_table.yml: -------------------------------------------------------------------------------- 1 | name: Auto Table Update 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | - name: Setup Python 13 | uses: actions/setup-python@v1 14 | with: 15 | python-version: '3.x' 16 | architecture: 'x64' 17 | - name: Setup pip 18 | run: | 19 | python -m pip install --upgrade pip 20 | pip install pytz 21 | - name: Run make_table.py 22 | run: | 23 | python scripts/update_solution.py 24 | python scripts/make_table.py 25 | python scripts/make_readme.py 26 | - name: Config Github 27 | run: | 28 | git config --local user.email "${{ secrets.user_email }}" 29 | git config --local user.name "${{ secrets.user_name }}" 30 | git add . 31 | git commit -m "Auto Update Table (on PUSH event)" 32 | - name: Push 33 | uses: ad-m/github-push-action@master 34 | with: 35 | branch: 'main' 36 | github_token: $ 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.toptal.com/developers/gitignore/api/vim,python,java,c++ 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=vim,python,java,c++ 4 | 5 | ### C++ ### 6 | # Prerequisites 7 | *.d 8 | 9 | # Compiled Object files 10 | *.slo 11 | *.lo 12 | *.o 13 | *.obj 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Linker files 20 | *.ilk 21 | 22 | # Debugger Files 23 | *.pdb 24 | 25 | # Compiled Dynamic libraries 26 | *.so 27 | *.dylib 28 | *.dll 29 | 30 | # Fortran module files 31 | *.mod 32 | *.smod 33 | 34 | # Compiled Static libraries 35 | *.lai 36 | *.la 37 | *.a 38 | *.lib 39 | 40 | # Executables 41 | *.exe 42 | *.out 43 | *.app 44 | 45 | ### Java ### 46 | # Compiled class file 47 | *.class 48 | 49 | # Log file 50 | *.log 51 | 52 | # BlueJ files 53 | *.ctxt 54 | 55 | # Mobile Tools for Java (J2ME) 56 | .mtj.tmp/ 57 | 58 | # Package Files # 59 | *.jar 60 | *.war 61 | *.nar 62 | *.ear 63 | *.zip 64 | *.tar.gz 65 | *.rar 66 | 67 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 68 | hs_err_pid* 69 | 70 | ### Python ### 71 | # Byte-compiled / optimized / DLL files 72 | __pycache__/ 73 | *.py[cod] 74 | *$py.class 75 | 76 | # C extensions 77 | 78 | # Distribution / packaging 79 | .Python 80 | build/ 81 | develop-eggs/ 82 | dist/ 83 | downloads/ 84 | eggs/ 85 | .eggs/ 86 | parts/ 87 | sdist/ 88 | var/ 89 | wheels/ 90 | pip-wheel-metadata/ 91 | share/python-wheels/ 92 | *.egg-info/ 93 | .installed.cfg 94 | *.egg 95 | MANIFEST 96 | 97 | # PyInstaller 98 | # Usually these files are written by a python script from a template 99 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 100 | *.manifest 101 | *.spec 102 | 103 | # Installer logs 104 | pip-log.txt 105 | pip-delete-this-directory.txt 106 | 107 | # Unit test / coverage reports 108 | htmlcov/ 109 | .tox/ 110 | .nox/ 111 | .coverage 112 | .coverage.* 113 | .cache 114 | nosetests.xml 115 | coverage.xml 116 | *.cover 117 | *.py,cover 118 | .hypothesis/ 119 | .pytest_cache/ 120 | pytestdebug.log 121 | 122 | # Translations 123 | *.mo 124 | *.pot 125 | 126 | # Django stuff: 127 | local_settings.py 128 | db.sqlite3 129 | db.sqlite3-journal 130 | 131 | # Flask stuff: 132 | instance/ 133 | .webassets-cache 134 | 135 | # Scrapy stuff: 136 | .scrapy 137 | 138 | # Sphinx documentation 139 | docs/_build/ 140 | doc/_build/ 141 | 142 | # PyBuilder 143 | target/ 144 | 145 | # Jupyter Notebook 146 | .ipynb_checkpoints 147 | 148 | # IPython 149 | profile_default/ 150 | ipython_config.py 151 | 152 | # pyenv 153 | .python-version 154 | 155 | # pipenv 156 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 157 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 158 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 159 | # install all needed dependencies. 160 | #Pipfile.lock 161 | 162 | # poetry 163 | #poetry.lock 164 | 165 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 166 | __pypackages__/ 167 | 168 | # Celery stuff 169 | celerybeat-schedule 170 | celerybeat.pid 171 | 172 | # SageMath parsed files 173 | *.sage.py 174 | 175 | # Environments 176 | # .env 177 | .env/ 178 | .venv/ 179 | env/ 180 | venv/ 181 | ENV/ 182 | env.bak/ 183 | venv.bak/ 184 | pythonenv* 185 | 186 | # Spyder project settings 187 | .spyderproject 188 | .spyproject 189 | 190 | # Rope project settings 191 | .ropeproject 192 | 193 | # mkdocs documentation 194 | /site 195 | 196 | # mypy 197 | .mypy_cache/ 198 | .dmypy.json 199 | dmypy.json 200 | 201 | # Pyre type checker 202 | .pyre/ 203 | 204 | # pytype static type analyzer 205 | .pytype/ 206 | 207 | # operating system-related files 208 | # file properties cache/storage on macOS 209 | *.DS_Store 210 | # thumbnail cache on Windows 211 | Thumbs.db 212 | 213 | # profiling data 214 | .prof 215 | 216 | 217 | ### Vim ### 218 | # Swap 219 | [._]*.s[a-v][a-z] 220 | !*.svg # comment out if you don't need vector files 221 | [._]*.sw[a-p] 222 | [._]s[a-rt-v][a-z] 223 | [._]ss[a-gi-z] 224 | [._]sw[a-p] 225 | 226 | # Session 227 | Session.vim 228 | Sessionx.vim 229 | 230 | # Temporary 231 | .netrwhist 232 | *~ 233 | # Auto-generated tag files 234 | tags 235 | # Persistent undo 236 | [._]*.un~ 237 | 238 | # End of https://www.toptal.com/developers/gitignore/api/vim,python,java,c++ 239 | -------------------------------------------------------------------------------- /LEVEL1/README.md: -------------------------------------------------------------------------------- 1 | # LEVEL 1 2 | 3 | 4 | 5 | | 순번|추천 문제|문제 이름|솔브드 티어|알고리즘 태그|풀이 링크 | 6 | | :--:|:--:|:--:|:--:|:--:|:--:| 7 | | 00 ||[폰켓몬](https://programmers.co.kr/learn/courses/30/lessons/1845)|||| 8 | | 01 ||[완주하지 못한 선수](https://programmers.co.kr/learn/courses/30/lessons/42576)|||[바로가기](../solution/LEVEL1/42576)| 9 | | 02 ||[K번째수](https://programmers.co.kr/learn/courses/30/lessons/42748)|||| 10 | | 03 ||[체육복](https://programmers.co.kr/learn/courses/30/lessons/42862)|||| 11 | | 04 ||[[카카오 인턴] 키패드 누르기](https://programmers.co.kr/learn/courses/30/lessons/67256)|||| 12 | | 05 ||[크레인 인형뽑기 게임](https://programmers.co.kr/learn/courses/30/lessons/64061)|||| 13 | | 06 ||[모의고사](https://programmers.co.kr/learn/courses/30/lessons/42840)|||| 14 | | 07 ||[로또의 최고 순위와 최저 순위](https://programmers.co.kr/learn/courses/30/lessons/77484)|||| 15 | | 08 ||[음양 더하기](https://programmers.co.kr/learn/courses/30/lessons/76501)|||| 16 | | 09 ||[소수 만들기](https://programmers.co.kr/learn/courses/30/lessons/12977)|||| 17 | | 10 ||[내적](https://programmers.co.kr/learn/courses/30/lessons/70128)|||| 18 | | 11 ||[신규 아이디 추천](https://programmers.co.kr/learn/courses/30/lessons/72410)|||| 19 | | 12 ||[예산](https://programmers.co.kr/learn/courses/30/lessons/12982)|||| 20 | | 13 ||[실패율](https://programmers.co.kr/learn/courses/30/lessons/42889)|||| 21 | | 14 ||[3진법 뒤집기](https://programmers.co.kr/learn/courses/30/lessons/68935)|||| 22 | | 15 ||[두 개 뽑아서 더하기](https://programmers.co.kr/learn/courses/30/lessons/68644)|||| 23 | | 16 ||[2016년](https://programmers.co.kr/learn/courses/30/lessons/12901)|||| 24 | | 17 ||[[1차] 비밀지도](https://programmers.co.kr/learn/courses/30/lessons/17681)|||| 25 | | 18 ||[가운데 글자 가져오기](https://programmers.co.kr/learn/courses/30/lessons/12903)|||| 26 | | 19 ||[[1차] 다트 게임](https://programmers.co.kr/learn/courses/30/lessons/17682)|||| 27 | | 20 ||[같은 숫자는 싫어](https://programmers.co.kr/learn/courses/30/lessons/12906)|||| 28 | | 21 ||[나누어 떨어지는 숫자 배열](https://programmers.co.kr/learn/courses/30/lessons/12910)|||| 29 | | 22 ||[두 정수 사이의 합](https://programmers.co.kr/learn/courses/30/lessons/12912)|||| 30 | | 23 ||[문자열 내 마음대로 정렬하기](https://programmers.co.kr/learn/courses/30/lessons/12915)|||| 31 | | 24 ||[문자열 내 p와 y의 개수](https://programmers.co.kr/learn/courses/30/lessons/12916)|||| 32 | | 25 ||[문자열 내림차순으로 배치하기](https://programmers.co.kr/learn/courses/30/lessons/12917)|||| 33 | | 26 ||[문자열 다루기 기본](https://programmers.co.kr/learn/courses/30/lessons/12918)|||| 34 | | 27 ||[서울에서 김서방 찾기](https://programmers.co.kr/learn/courses/30/lessons/12919)|||| 35 | | 28 ||[소수 찾기](https://programmers.co.kr/learn/courses/30/lessons/12921)|||| 36 | | 29 ||[수박수박수박수박수박수?](https://programmers.co.kr/learn/courses/30/lessons/12922)|||| 37 | | 30 ||[문자열을 정수로 바꾸기](https://programmers.co.kr/learn/courses/30/lessons/12925)|||| 38 | | 31 ||[시저 암호](https://programmers.co.kr/learn/courses/30/lessons/12926)|||| 39 | | 32 ||[약수의 합](https://programmers.co.kr/learn/courses/30/lessons/12928)|||| 40 | | 33 ||[이상한 문자 만들기](https://programmers.co.kr/learn/courses/30/lessons/12930)|||| 41 | | 34 ||[자릿수 더하기](https://programmers.co.kr/learn/courses/30/lessons/12931)|||| 42 | | 35 ||[자연수 뒤집어 배열로 만들기](https://programmers.co.kr/learn/courses/30/lessons/12932)|||| 43 | | 36 ||[정수 내림차순으로 배치하기](https://programmers.co.kr/learn/courses/30/lessons/12933)|||| 44 | | 37 ||[정수 제곱근 판별](https://programmers.co.kr/learn/courses/30/lessons/12934)|||| 45 | | 38 ||[제일 작은 수 제거하기](https://programmers.co.kr/learn/courses/30/lessons/12935)|||| 46 | | 39 ||[짝수와 홀수](https://programmers.co.kr/learn/courses/30/lessons/12937)|||| 47 | | 40 ||[최대공약수와 최소공배수](https://programmers.co.kr/learn/courses/30/lessons/12940)|||| 48 | | 41 ||[콜라츠 추측](https://programmers.co.kr/learn/courses/30/lessons/12943)|||| 49 | | 42 ||[평균 구하기](https://programmers.co.kr/learn/courses/30/lessons/12944)|||| 50 | | 43 ||[하샤드 수](https://programmers.co.kr/learn/courses/30/lessons/12947)|||| 51 | | 44 ||[핸드폰 번호 가리기](https://programmers.co.kr/learn/courses/30/lessons/12948)|||| 52 | | 45 ||[행렬의 덧셈](https://programmers.co.kr/learn/courses/30/lessons/12950)|||| 53 | | 46 ||[x만큼 간격이 있는 n개의 숫자](https://programmers.co.kr/learn/courses/30/lessons/12954)|||| 54 | | 47 ||[직사각형 별찍기](https://programmers.co.kr/learn/courses/30/lessons/12969)|||| 55 | -------------------------------------------------------------------------------- /LEVEL1/header.md: -------------------------------------------------------------------------------- 1 | # LEVEL 1 2 | 3 | 4 | -------------------------------------------------------------------------------- /LEVEL1/list.md: -------------------------------------------------------------------------------- 1 | [recommend]$"[title]"$[link(url)]$[tier(SolvedAC)]$[algorithm tags]$[Solution] 2 | $"폰켓몬"$1845$$[]$ 3 | $"완주하지 못한 선수"$42576$$[]$[바로가기](../solution/LEVEL1/42576) 4 | $"K번째수"$42748$$[]$ 5 | $"체육복"$42862$$[]$ 6 | $"[카카오 인턴] 키패드 누르기"$67256$$[]$ 7 | $"크레인 인형뽑기 게임"$64061$$[]$ 8 | $"모의고사"$42840$$[]$ 9 | $"로또의 최고 순위와 최저 순위"$77484$$[]$ 10 | $"음양 더하기"$76501$$[]$ 11 | $"소수 만들기"$12977$$[]$ 12 | $"내적"$70128$$[]$ 13 | $"신규 아이디 추천"$72410$$[]$ 14 | $"예산"$12982$$[]$ 15 | $"실패율"$42889$$[]$ 16 | $"3진법 뒤집기"$68935$$[]$ 17 | $"두 개 뽑아서 더하기"$68644$$[]$ 18 | $"2016년"$12901$$[]$ 19 | $"[1차] 비밀지도"$17681$$[]$ 20 | $"가운데 글자 가져오기"$12903$$[]$ 21 | $"[1차] 다트 게임"$17682$$[]$ 22 | $"같은 숫자는 싫어"$12906$$[]$ 23 | $"나누어 떨어지는 숫자 배열"$12910$$[]$ 24 | $"두 정수 사이의 합"$12912$$[]$ 25 | $"문자열 내 마음대로 정렬하기"$12915$$[]$ 26 | $"문자열 내 p와 y의 개수"$12916$$[]$ 27 | $"문자열 내림차순으로 배치하기"$12917$$[]$ 28 | $"문자열 다루기 기본"$12918$$[]$ 29 | $"서울에서 김서방 찾기"$12919$$[]$ 30 | $"소수 찾기"$12921$$[]$ 31 | $"수박수박수박수박수박수?"$12922$$[]$ 32 | $"문자열을 정수로 바꾸기"$12925$$[]$ 33 | $"시저 암호"$12926$$[]$ 34 | $"약수의 합"$12928$$[]$ 35 | $"이상한 문자 만들기"$12930$$[]$ 36 | $"자릿수 더하기"$12931$$[]$ 37 | $"자연수 뒤집어 배열로 만들기"$12932$$[]$ 38 | $"정수 내림차순으로 배치하기"$12933$$[]$ 39 | $"정수 제곱근 판별"$12934$5$[]$ 40 | $"제일 작은 수 제거하기"$12935$3$[]$ 41 | $"짝수와 홀수"$12937$4$[]$ 42 | $"최대공약수와 최소공배수"$12940$6$[]$ 43 | $"콜라츠 추측"$12943$7$[]$ 44 | $"평균 구하기"$12944$$[]$ 45 | $"하샤드 수"$12947$$[]$ 46 | $"핸드폰 번호 가리기"$12948$$[]$ 47 | $"행렬의 덧셈"$12950$$[]$ 48 | $"x만큼 간격이 있는 n개의 숫자"$12954$$[]$ 49 | $"직사각형 별찍기"$12969$3$[]$ 50 | -------------------------------------------------------------------------------- /LEVEL2/README.md: -------------------------------------------------------------------------------- 1 | # LEVEL 2 2 | 3 | 4 | 5 | | 순번|추천 문제|문제 이름|솔브드 티어|알고리즘 태그|풀이 링크 | 6 | | :--:|:--:|:--:|:--:|:--:|:--:| 7 | | 00 ||[124 나라의 숫자](https://programmers.co.kr/learn/courses/30/lessons/12899)|||| 8 | | 01 ||[멀쩡한 사각형](https://programmers.co.kr/learn/courses/30/lessons/62048)|||| 9 | | 02 ||[오픈채팅방](https://programmers.co.kr/learn/courses/30/lessons/42888)|||| 10 | | 03 ||[문자열 압축](https://programmers.co.kr/learn/courses/30/lessons/60057)|||[바로가기](../solution/LEVEL2/60057)| 11 | | 04 ||[더 맵게](https://programmers.co.kr/learn/courses/30/lessons/42626)|||| 12 | | 05 ||[짝지어 제거하기](https://programmers.co.kr/learn/courses/30/lessons/12973)|||| 13 | | 06 ||[기능개발](https://programmers.co.kr/learn/courses/30/lessons/42586)|||| 14 | | 07 ||[타겟 넘버](https://programmers.co.kr/learn/courses/30/lessons/43165)|||| 15 | | 08 ||[[카카오 인턴] 수식 최대화](https://programmers.co.kr/learn/courses/30/lessons/67257)|||| 16 | | 09 ||[메뉴 리뉴얼](https://programmers.co.kr/learn/courses/30/lessons/72411)|||| 17 | | 10 ||[전화번호 목록](https://programmers.co.kr/learn/courses/30/lessons/42577)|||| 18 | | 11 ||[[1차] 뉴스 클러스터링](https://programmers.co.kr/learn/courses/30/lessons/17677)|||| 19 | | 12 ||[행렬 테두리 회전하기](https://programmers.co.kr/learn/courses/30/lessons/77485)|||| 20 | | 13 ||[예상 대진표](https://programmers.co.kr/learn/courses/30/lessons/12985)|||| 21 | | 14 ||[조이스틱](https://programmers.co.kr/learn/courses/30/lessons/42860)|||| 22 | | 15 ||[튜플](https://programmers.co.kr/learn/courses/30/lessons/64065)|||| 23 | | 16 ||[괄호 변환](https://programmers.co.kr/learn/courses/30/lessons/60058)|||| 24 | | 17 ||[소수 찾기](https://programmers.co.kr/learn/courses/30/lessons/42839)|||| 25 | | 18 ||[게임 맵 최단거리](https://programmers.co.kr/learn/courses/30/lessons/1844)|||| 26 | | 19 ||[프린터](https://programmers.co.kr/learn/courses/30/lessons/42587)|||| 27 | | 20 ||[큰 수 만들기](https://programmers.co.kr/learn/courses/30/lessons/42883)|||| 28 | | 21 ||[배달](https://programmers.co.kr/learn/courses/30/lessons/12978)|||| 29 | | 22 ||[위장](https://programmers.co.kr/learn/courses/30/lessons/42578)|||| 30 | | 23 ||[다리를 지나는 트럭](https://programmers.co.kr/learn/courses/30/lessons/42583)|||| 31 | | 24 ||[후보키](https://programmers.co.kr/learn/courses/30/lessons/42890)|||| 32 | | 25 ||[H-Index](https://programmers.co.kr/learn/courses/30/lessons/42747)|||| 33 | | 26 ||[순위 검색](https://programmers.co.kr/learn/courses/30/lessons/72412)|||| 34 | | 27 ||[카펫](https://programmers.co.kr/learn/courses/30/lessons/42842)|||| 35 | | 28 ||[[1차] 프렌즈4블](https://programmers.co.kr/learn/courses/30/lessons/17679)|||| 36 | | 29 ||[영어 끝말잇기](https://programmers.co.kr/learn/courses/30/lessons/12981)|||| 37 | | 30 ||[구명보트](https://programmers.co.kr/learn/courses/30/lessons/42885)|||| 38 | | 31 ||[주식가격](https://programmers.co.kr/learn/courses/30/lessons/42584)|||| 39 | | 32 ||[삼각 달팽이](https://programmers.co.kr/learn/courses/30/lessons/68645)|||| 40 | | 33 ||[점프와 순간 이동](https://programmers.co.kr/learn/courses/30/lessons/12980)|||| 41 | | 34 ||[이진 변환 반복하기](https://programmers.co.kr/learn/courses/30/lessons/70129)|||| 42 | | 35 ||[[1차] 캐시](https://programmers.co.kr/learn/courses/30/lessons/17680)|||| 43 | | 36 ||[스킬트리](https://programmers.co.kr/learn/courses/30/lessons/49993)|||| 44 | | 37 ||[쿼드압축 후 개수 세기](https://programmers.co.kr/learn/courses/30/lessons/68936)|||| 45 | | 38 ||[방문 길이](https://programmers.co.kr/learn/courses/30/lessons/49994)|||| 46 | | 39 ||[가장 큰 정사각형 찾기](https://programmers.co.kr/learn/courses/30/lessons/12905)|||| 47 | | 40 ||[[3차] 방금그곡](https://programmers.co.kr/learn/courses/30/lessons/17683)|||| 48 | | 41 ||[[3차] 압축](https://programmers.co.kr/learn/courses/30/lessons/17684)|||| 49 | | 42 ||[올바른 괄호](https://programmers.co.kr/learn/courses/30/lessons/12909)|||| 50 | | 43 ||[[3차] 파일명 정렬](https://programmers.co.kr/learn/courses/30/lessons/17686)|||| 51 | | 44 ||[[3차] n진수 게임](https://programmers.co.kr/learn/courses/30/lessons/17687)|||| 52 | | 45 ||[다음 큰 숫자](https://programmers.co.kr/learn/courses/30/lessons/12911)|||| 53 | | 46 ||[땅따먹기](https://programmers.co.kr/learn/courses/30/lessons/12913)|||| 54 | | 47 ||[숫자의 표현](https://programmers.co.kr/learn/courses/30/lessons/12924)|||| 55 | | 48 ||[최댓값과 최솟값](https://programmers.co.kr/learn/courses/30/lessons/12939)|||| 56 | | 49 ||[최솟값 만들기](https://programmers.co.kr/learn/courses/30/lessons/12941)|||| 57 | | 50 ||[피보나치 수](https://programmers.co.kr/learn/courses/30/lessons/12945)|||| 58 | | 51 ||[행렬의 곱셈](https://programmers.co.kr/learn/courses/30/lessons/12949)|||| 59 | | 52 ||[JadenCase 문자열 만들기](https://programmers.co.kr/learn/courses/30/lessons/12951)|||| 60 | | 53 ||[N개의 최소공배수](https://programmers.co.kr/learn/courses/30/lessons/12953)|||| 61 | -------------------------------------------------------------------------------- /LEVEL2/header.md: -------------------------------------------------------------------------------- 1 | # LEVEL 2 2 | 3 | 4 | -------------------------------------------------------------------------------- /LEVEL2/list.md: -------------------------------------------------------------------------------- 1 | [recommend]$"[title]"$[link(url)]$[tier(SolvedAC)]$[algorithm tags]$[solution] 2 | $"124 나라의 숫자"$12899$$[]$ 3 | $"멀쩡한 사각형"$62048$$[]$ 4 | $"오픈채팅방"$42888$$[]$ 5 | $"문자열 압축"$60057$$[]$[바로가기](../solution/LEVEL2/60057) 6 | $"더 맵게"$42626$$[]$ 7 | $"짝지어 제거하기"$12973$$[]$ 8 | $"기능개발"$42586$$[]$ 9 | $"타겟 넘버"$43165$$[]$ 10 | $"[카카오 인턴] 수식 최대화"$67257$$[]$ 11 | $"메뉴 리뉴얼"$72411$$[]$ 12 | $"전화번호 목록"$42577$$[]$ 13 | $"[1차] 뉴스 클러스터링"$17677$$[]$ 14 | $"행렬 테두리 회전하기"$77485$$[]$ 15 | $"예상 대진표"$12985$$[]$ 16 | $"조이스틱"$42860$$[]$ 17 | $"튜플"$64065$$[]$ 18 | $"괄호 변환"$60058$$[]$ 19 | $"소수 찾기"$42839$$[]$ 20 | $"게임 맵 최단거리"$1844$$[]$ 21 | $"프린터"$42587$$[]$ 22 | $"큰 수 만들기"$42883$$[]$ 23 | $"배달"$12978$$[]$ 24 | $"위장"$42578$$[]$ 25 | $"다리를 지나는 트럭"$42583$$[]$ 26 | $"후보키"$42890$$[]$ 27 | $"H-Index"$42747$$[]$ 28 | $"순위 검색"$72412$$[]$ 29 | $"카펫"$42842$$[]$ 30 | $"[1차] 프렌즈4블"$17679$$[]$ 31 | $"영어 끝말잇기"$12981$$[]$ 32 | $"구명보트"$42885$$[]$ 33 | $"주식가격"$42584$$[]$ 34 | $"삼각 달팽이"$68645$$[]$ 35 | $"점프와 순간 이동"$12980$$[]$ 36 | $"이진 변환 반복하기"$70129$$[]$ 37 | $"[1차] 캐시"$17680$$[]$ 38 | $"스킬트리"$49993$$[]$ 39 | $"쿼드압축 후 개수 세기"$68936$$[]$ 40 | $"방문 길이"$49994$$[]$ 41 | $"가장 큰 정사각형 찾기"$12905$$[]$ 42 | $"[3차] 방금그곡"$17683$$[]$ 43 | $"[3차] 압축"$17684$$[]$ 44 | $"올바른 괄호"$12909$$[]$ 45 | $"[3차] 파일명 정렬"$17686$$[]$ 46 | $"[3차] n진수 게임"$17687$$[]$ 47 | $"다음 큰 숫자"$12911$$[]$ 48 | $"땅따먹기"$12913$$[]$ 49 | $"숫자의 표현"$12924$$[]$ 50 | $"최댓값과 최솟값"$12939$$[]$ 51 | $"최솟값 만들기"$12941$$[]$ 52 | $"피보나치 수"$12945$$[]$ 53 | $"행렬의 곱셈"$12949$$[]$ 54 | $"JadenCase 문자열 만들기"$12951$$[]$ 55 | $"N개의 최소공배수"$12953$$[]$ 56 | -------------------------------------------------------------------------------- /LEVEL3/README.md: -------------------------------------------------------------------------------- 1 | # LEVEL 3 2 | 3 | 4 | 5 | | 순번|추천 문제|문제 이름|솔브드 티어|알고리즘 태그|풀이 링크 | 6 | | :--:|:--:|:--:|:--:|:--:|:--:| 7 | | 00 ||[N으로 표현](https://programmers.co.kr/learn/courses/30/lessons/42895)|||| 8 | | 01 ||[[1차] 추석 트래픽](https://programmers.co.kr/learn/courses/30/lessons/17676)|||| 9 | | 02 ||[가장 먼 노드](https://programmers.co.kr/learn/courses/30/lessons/49189)|||| 10 | | 03 ||[입국심사](https://programmers.co.kr/learn/courses/30/lessons/43238)|||| 11 | | 04 ||[디스크 컨트롤러](https://programmers.co.kr/learn/courses/30/lessons/42627)|||| 12 | | 05 ||[네트워크](https://programmers.co.kr/learn/courses/30/lessons/43162)|||| 13 | | 06 ||[정수 삼각형](https://programmers.co.kr/learn/courses/30/lessons/43105)|||| 14 | | 07 ||[순위](https://programmers.co.kr/learn/courses/30/lessons/49191)|||| 15 | | 08 ||[[카카오 인턴] 보석 쇼핑](https://programmers.co.kr/learn/courses/30/lessons/67258)|||| 16 | | 09 ||[등굣길](https://programmers.co.kr/learn/courses/30/lessons/42898)|||| 17 | | 10 ||[[1차] 셔틀버스](https://programmers.co.kr/learn/courses/30/lessons/17678)|||| 18 | | 11 ||[단어 변환](https://programmers.co.kr/learn/courses/30/lessons/43163)|||| 19 | | 12 ||[이중우선순위큐](https://programmers.co.kr/learn/courses/30/lessons/42628)|||| 20 | | 13 ||[2 x n 타일링](https://programmers.co.kr/learn/courses/30/lessons/12900)|||| 21 | | 14 ||[자물쇠와 열쇠](https://programmers.co.kr/learn/courses/30/lessons/60059)|||| 22 | | 15 ||[모두 0으로 만들기](https://programmers.co.kr/learn/courses/30/lessons/76503)|||| 23 | | 16 ||[다단계 칫솔 판매](https://programmers.co.kr/learn/courses/30/lessons/77486)|||| 24 | | 17 ||[불량 사용자](https://programmers.co.kr/learn/courses/30/lessons/64064)|||| 25 | | 18 ||[[카카오 인턴] 경주로 건설](https://programmers.co.kr/learn/courses/30/lessons/67259)|||| 26 | | 19 ||[합승 택시 요금](https://programmers.co.kr/learn/courses/30/lessons/72413)|||| 27 | | 20 ||[여행경로](https://programmers.co.kr/learn/courses/30/lessons/43164)|||| 28 | | 21 ||[섬 연결하기](https://programmers.co.kr/learn/courses/30/lessons/42861)|||| 29 | | 22 ||[길 찾기 게임](https://programmers.co.kr/learn/courses/30/lessons/42892)|||| 30 | | 23 ||[광고 삽입](https://programmers.co.kr/learn/courses/30/lessons/72414)|||| 31 | | 24 ||[징검다리 건너기](https://programmers.co.kr/learn/courses/30/lessons/64062)|||| 32 | | 25 ||[기둥과 보 설치](https://programmers.co.kr/learn/courses/30/lessons/60061)|||| 33 | | 26 ||[단속카메라](https://programmers.co.kr/learn/courses/30/lessons/42884)|||| 34 | | 27 ||[매칭 점수](https://programmers.co.kr/learn/courses/30/lessons/42893)|||| 35 | | 28 ||[카드 짝 맞추기](https://programmers.co.kr/learn/courses/30/lessons/72415)|||| 36 | | 29 ||[외벽 점검](https://programmers.co.kr/learn/courses/30/lessons/60062)|||| 37 | | 30 ||[풍선 터트리기](https://programmers.co.kr/learn/courses/30/lessons/68646)|||| 38 | | 31 ||[블록 이동하기](https://programmers.co.kr/learn/courses/30/lessons/60063)|||| 39 | | 32 ||[가장 긴 팰린드롬](https://programmers.co.kr/learn/courses/30/lessons/12904)|||| 40 | | 33 ||[기지국 설치](https://programmers.co.kr/learn/courses/30/lessons/12979)|||| 41 | | 34 ||[스타 수열](https://programmers.co.kr/learn/courses/30/lessons/70130)|||| 42 | | 35 ||[숫자 게임](https://programmers.co.kr/learn/courses/30/lessons/12987)|||| 43 | | 36 ||[스티커 모으기(2)](https://programmers.co.kr/learn/courses/30/lessons/12971)|||| 44 | | 37 ||[거스름돈](https://programmers.co.kr/learn/courses/30/lessons/12907)|||| 45 | | 38 ||[멀리 뛰기](https://programmers.co.kr/learn/courses/30/lessons/12914)|||| 46 | | 39 ||[야근 지수](https://programmers.co.kr/learn/courses/30/lessons/12927)|||| 47 | | 40 ||[줄 서는 방법](https://programmers.co.kr/learn/courses/30/lessons/12936)|||| 48 | | 41 ||[최고의 집합](https://programmers.co.kr/learn/courses/30/lessons/12938)|||| 49 | | 42 ||[하노이의 탑](https://programmers.co.kr/learn/courses/30/lessons/12946)|||| 50 | | 43 ||[N-Queen](https://programmers.co.kr/learn/courses/30/lessons/12952)|||| 51 | -------------------------------------------------------------------------------- /LEVEL3/header.md: -------------------------------------------------------------------------------- 1 | # LEVEL 3 2 | 3 | 4 | -------------------------------------------------------------------------------- /LEVEL3/list.md: -------------------------------------------------------------------------------- 1 | [recommend]$"[title]"$[link(url)]$[tier(SolvedAC)]$[algorithm tags]$[solution] 2 | $"N으로 표현"$42895$$[]$ 3 | $"[1차] 추석 트래픽"$17676$$[]$ 4 | $"가장 먼 노드"$49189$$[]$ 5 | $"입국심사"$43238$$[]$ 6 | $"디스크 컨트롤러"$42627$$[]$ 7 | $"네트워크"$43162$$[]$ 8 | $"정수 삼각형"$43105$$[]$ 9 | $"순위"$49191$$[]$ 10 | $"[카카오 인턴] 보석 쇼핑"$67258$$[]$ 11 | $"등굣길"$42898$$[]$ 12 | $"[1차] 셔틀버스"$17678$$[]$ 13 | $"단어 변환"$43163$$[]$ 14 | $"이중우선순위큐"$42628$$[]$ 15 | $"2 x n 타일링"$12900$$[]$ 16 | $"자물쇠와 열쇠"$60059$$[]$ 17 | $"모두 0으로 만들기"$76503$$[]$ 18 | $"다단계 칫솔 판매"$77486$$[]$ 19 | $"불량 사용자"$64064$$[]$ 20 | $"[카카오 인턴] 경주로 건설"$67259$$[]$ 21 | $"합승 택시 요금"$72413$$[]$ 22 | $"여행경로"$43164$$[]$ 23 | $"섬 연결하기"$42861$$[]$ 24 | $"길 찾기 게임"$42892$$[]$ 25 | $"광고 삽입"$72414$$[]$ 26 | $"징검다리 건너기"$64062$$[]$ 27 | $"기둥과 보 설치"$60061$$[]$ 28 | $"단속카메라"$42884$$[]$ 29 | $"매칭 점수"$42893$$[]$ 30 | $"카드 짝 맞추기"$72415$$[]$ 31 | $"외벽 점검"$60062$$[]$ 32 | $"풍선 터트리기"$68646$$[]$ 33 | $"블록 이동하기"$60063$$[]$ 34 | $"가장 긴 팰린드롬"$12904$$[]$ 35 | $"기지국 설치"$12979$$[]$ 36 | $"스타 수열"$70130$$[]$ 37 | $"숫자 게임"$12987$$[]$ 38 | $"스티커 모으기(2)"$12971$$[]$ 39 | $"거스름돈"$12907$$[]$ 40 | $"멀리 뛰기"$12914$$[]$ 41 | $"야근 지수"$12927$$[]$ 42 | $"줄 서는 방법"$12936$$[]$ 43 | $"최고의 집합"$12938$$[]$ 44 | $"하노이의 탑"$12946$$[]$ 45 | $"N-Queen"$12952$$[]$ 46 | -------------------------------------------------------------------------------- /LEVEL4/README.md: -------------------------------------------------------------------------------- 1 | # LEVEL 4 2 | 3 | 4 | 5 | | 순번|추천 문제|문제 이름|솔브드 티어|알고리즘 태그|풀이 링크 | 6 | | :--:|:--:|:--:|:--:|:--:|:--:| 7 | | 00 ||[징검다리](https://programmers.co.kr/learn/courses/30/lessons/43236)|||| 8 | | 01 ||[지형 이동](https://programmers.co.kr/learn/courses/30/lessons/62050)|||| 9 | | 02 ||[사칙연산](https://programmers.co.kr/learn/courses/30/lessons/1843)|||| 10 | | 03 ||[단어 퍼즐](https://programmers.co.kr/learn/courses/30/lessons/12983)|||| 11 | | 04 ||[무지의 먹방 라이브](https://programmers.co.kr/learn/courses/30/lessons/42891)|||| 12 | | 05 ||[도둑질](https://programmers.co.kr/learn/courses/30/lessons/42897)|||| 13 | | 06 ||[가사 검색](https://programmers.co.kr/learn/courses/30/lessons/60060)|||| 14 | | 07 ||[호텔 방 배정](https://programmers.co.kr/learn/courses/30/lessons/64063)|||| 15 | | 08 ||[3 x n 타일링](https://programmers.co.kr/learn/courses/30/lessons/12902)|||| 16 | | 09 ||[[카카오 인턴] 동굴 탐험](https://programmers.co.kr/learn/courses/30/lessons/67260)|||| 17 | | 10 ||[매출 하락 최소화](https://programmers.co.kr/learn/courses/30/lessons/72416)|||| 18 | | 11 ||[블록 게임](https://programmers.co.kr/learn/courses/30/lessons/42894)|||| 19 | | 12 ||[트리 트리오 중간값](https://programmers.co.kr/learn/courses/30/lessons/68937)|||| 20 | | 13 ||[짝수 행 세기](https://programmers.co.kr/learn/courses/30/lessons/68647)|||| 21 | | 14 ||[[3차] 자동완성](https://programmers.co.kr/learn/courses/30/lessons/17685)|||| 22 | | 15 ||[지형 편집](https://programmers.co.kr/learn/courses/30/lessons/12984)|||| 23 | | 16 ||[쿠키 구입](https://programmers.co.kr/learn/courses/30/lessons/49995)|||| 24 | | 17 ||[선입 선출 스케줄링](https://programmers.co.kr/learn/courses/30/lessons/12920)|||| 25 | | 18 ||[숫자 블록](https://programmers.co.kr/learn/courses/30/lessons/12923)|||| 26 | | 19 ||[올바른 괄호의 갯수](https://programmers.co.kr/learn/courses/30/lessons/12929)|||| 27 | | 20 ||[최적의 행렬 곱셈](https://programmers.co.kr/learn/courses/30/lessons/12942)|||| 28 | -------------------------------------------------------------------------------- /LEVEL4/header.md: -------------------------------------------------------------------------------- 1 | # LEVEL 4 2 | 3 | 4 | -------------------------------------------------------------------------------- /LEVEL4/list.md: -------------------------------------------------------------------------------- 1 | [recommend]$"[title]"$[link(url)]$[tier(SolvedAC)]$[algorithm tags]$[solution] 2 | $"징검다리"$43236$$[]$ 3 | $"지형 이동"$62050$$[]$ 4 | $"사칙연산"$1843$$[]$ 5 | $"단어 퍼즐"$12983$$[]$ 6 | $"무지의 먹방 라이브"$42891$$[]$ 7 | $"도둑질"$42897$$[]$ 8 | $"가사 검색"$60060$$[]$ 9 | $"호텔 방 배정"$64063$$[]$ 10 | $"3 x n 타일링"$12902$$[]$ 11 | $"[카카오 인턴] 동굴 탐험"$67260$$[]$ 12 | $"매출 하락 최소화"$72416$$[]$ 13 | $"블록 게임"$42894$$[]$ 14 | $"트리 트리오 중간값"$68937$$[]$ 15 | $"짝수 행 세기"$68647$$[]$ 16 | $"[3차] 자동완성"$17685$$[]$ 17 | $"지형 편집"$12984$$[]$ 18 | $"쿠키 구입"$49995$$[]$ 19 | $"선입 선출 스케줄링"$12920$$[]$ 20 | $"숫자 블록"$12923$$[]$ 21 | $"올바른 괄호의 갯수"$12929$$[]$ 22 | $"최적의 행렬 곱셈"$12942$$[]$ 23 | -------------------------------------------------------------------------------- /LEVEL5/README.md: -------------------------------------------------------------------------------- 1 | # LEVEL 5 2 | 3 | 4 | 5 | | 순번|추천 문제|문제 이름|솔브드 티어|알고리즘 태그|풀이 링크 | 6 | | :--:|:--:|:--:|:--:|:--:|:--:| 7 | | 00 ||[방의 개수](https://programmers.co.kr/learn/courses/30/lessons/49190)|||| 8 | | 01 ||[RPG와 쿼리](https://programmers.co.kr/learn/courses/30/lessons/76504)|||| 9 | | 02 ||[문자열의 아름다움](https://programmers.co.kr/learn/courses/30/lessons/68938)|||| 10 | | 03 ||[가짜 해밀토니안](https://programmers.co.kr/learn/courses/30/lessons/70132)|||| 11 | -------------------------------------------------------------------------------- /LEVEL5/header.md: -------------------------------------------------------------------------------- 1 | # LEVEL 5 2 | 3 | 4 | -------------------------------------------------------------------------------- /LEVEL5/list.md: -------------------------------------------------------------------------------- 1 | [recommend]$"[title]"$[link(url)]$[tier(SolvedAC)]$[algorithm tags]$[solution] 2 | $"방의 개수"$49190$$[]$ 3 | $"RPG와 쿼리"$76504$$[]$ 4 | $"문자열의 아름다움"$68938$$[]$ 5 | $"가짜 해밀토니안"$70132$$[]$ 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 MS Kim(tony9402) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 코딩테스트 대비 문제집 With Programmers 2 | 3 | [![Auto Table Update](https://github.com/tony9402/programmers/actions/workflows/auto_update_table.yml/badge.svg)](https://github.com/tony9402/programmers/actions/workflows/auto_update_table.yml) 4 | [![하루 방문자 수](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Ftony9402%2Fprogrammers)](https://github.com/tony9402/programmers) 5 | 6 | ❈ 코딩테스트을 준비하시는 분들을 위해 문제집을 만들어봤습니다. ❈ 7 | 8 | ## 정리 기준 9 | 10 | Programmers 에 있는 난이도(Level 1 ~ 5) 기준으로 뽑았습니다. 11 | C++, Java, Python 3 필터링을 통해 문제를 뽑았습니다. 12 | 13 | ## 정리 목표 14 | 15 | Programmers 에는 알고리즘 분류가 없습니다. 16 | 각 문제에 알고리즘 태그 및 [Solved.ac](https://solved.ac/)에서 제공되는 난이도를 기준으로 표시할 예정입니다. 17 | 18 | ## 문제집 19 | 20 | 21 | 22 | | 난이도 | 문제집 | 추천 문제 수 | 전체 문제 수 | 상태 | 23 | | :--: |:--: |:--: |:--: |:--: | 24 | | LEVEL1 | [바로 가기](./LEVEL1) | 0 | 48 | ![status][TODO] | 25 | | LEVEL2 | [바로 가기](./LEVEL2) | 0 | 54 | ![status][TODO] | 26 | | LEVEL3 | [바로 가기](./LEVEL3) | 0 | 44 | ![status][TODO] | 27 | | LEVEL4 | [바로 가기](./LEVEL4) | 0 | 21 | ![status][TODO] | 28 | | LEVEL5 | [바로 가기](./LEVEL5) | 0 | 4 | ![status][TODO] | 29 | 30 | 31 | ## 업데이트 로그 32 | 33 | - 2021.05.07 34 | - 코딩테스트 대비 문제집 with programmers (Beta 버전) 35 | 36 | 37 | **실행한 날짜(log) : 2021/05/08 23:34:07 KST** 38 | 39 | 40 | [TODO]: https://img.shields.io/badge/-TODO-DFFD26 41 | [DOING]: https://img.shields.io/badge/-DOING-31AE0F 42 | [DONE]: https://img.shields.io/badge/-DONE-0885CC 43 | -------------------------------------------------------------------------------- /markdown/footer.md: -------------------------------------------------------------------------------- 1 | [TODO]: https://img.shields.io/badge/-TODO-DFFD26 2 | [DOING]: https://img.shields.io/badge/-DOING-31AE0F 3 | [DONE]: https://img.shields.io/badge/-DONE-0885CC 4 | -------------------------------------------------------------------------------- /markdown/header.md: -------------------------------------------------------------------------------- 1 | # 코딩테스트 대비 문제집 With Programmers 2 | 3 | [![Auto Table Update](https://github.com/tony9402/programmers/actions/workflows/auto_update_table.yml/badge.svg)](https://github.com/tony9402/programmers/actions/workflows/auto_update_table.yml) 4 | [![하루 방문자 수](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Ftony9402%2Fprogrammers)](https://github.com/tony9402/programmers) 5 | 6 | ❈ 코딩테스트을 준비하시는 분들을 위해 문제집을 만들어봤습니다. ❈ 7 | 8 | ## 정리 기준 9 | 10 | Programmers 에 있는 난이도(Level 1 ~ 5) 기준으로 뽑았습니다. 11 | C++, Java, Python 3 필터링을 통해 문제를 뽑았습니다. 12 | 13 | ## 정리 목표 14 | 15 | Programmers 에는 알고리즘 분류가 없습니다. 16 | 각 문제에 알고리즘 태그 및 [Solved.ac](https://solved.ac/)에서 제공되는 난이도를 기준으로 표시할 예정입니다. 17 | 18 | ## 문제집 19 | 20 | 21 | -------------------------------------------------------------------------------- /markdown/list.md: -------------------------------------------------------------------------------- 1 | 난이도,문제집,추천 문제 수,전체 문제 수,상태 2 | LEVEL1,TODO 3 | LEVEL2,TODO 4 | LEVEL3,TODO 5 | LEVEL4,TODO 6 | LEVEL5,TODO 7 | -------------------------------------------------------------------------------- /markdown/updatelog.md: -------------------------------------------------------------------------------- 1 | ## 업데이트 로그 2 | 3 | - 2021.05.07 4 | - 코딩테스트 대비 문제집 with programmers (Beta 버전) 5 | -------------------------------------------------------------------------------- /scripts/make_readme.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | # README.md 5 | # 6 | # header.md 7 | # list.md -> make_table 8 | # footer.md 9 | 10 | headers = list() 11 | updateLog = list() 12 | footers = list() 13 | tables = list() 14 | with open('./markdown/header.md', 'r') as f: 15 | headers = f.readlines() 16 | f.close() 17 | 18 | with open('./markdown/footer.md', 'r') as f: 19 | footers = f.readlines() 20 | f.close() 21 | 22 | with open('./markdown/updatelog.md', 'r') as f: 23 | updateLog = f.readlines() 24 | f.close() 25 | 26 | with open('./markdown/list.md', 'r') as f: 27 | data = f.readlines() 28 | f.close() 29 | 30 | tableHeader = data[0].strip().split(',') 31 | tables.append(f"| {' | '.join(tableHeader)} |") 32 | tables.append(f"| {':--: |' * len(tableHeader)}") 33 | for idx in range(1, len(data)): 34 | level, status = data[idx].strip().split(',') 35 | 36 | # len(problems) 37 | problems = list() 38 | recommend = list() 39 | with open(f"{level}/list.md", 'r') as f: 40 | problems = f.readlines()[1:] 41 | recommend = [ True for data in problems if data.strip().split("$")[0] != '' ] 42 | f.close() 43 | 44 | line = f"| {level} | [바로 가기](./{level}) | {len(recommend)} | {len(problems)} | ![status][{status}] |" 45 | tables.append(line) 46 | 47 | tables = [ f"{line}\n" for line in tables ] 48 | 49 | # README.md 50 | 51 | import datetime 52 | import pytz 53 | 54 | timeformat = datetime.datetime.now(pytz.timezone('Asia/Seoul')) 55 | 56 | with open('./README.md', 'w') as f: 57 | f.writelines(headers) 58 | f.write('\n') 59 | 60 | # table 61 | f.writelines(tables) 62 | 63 | # updateLog 64 | f.write("\n\n") 65 | f.writelines(updateLog) 66 | 67 | f.write(f"\n\n**실행한 날짜(log) : {timeformat.strftime('%Y/%m/%d %H:%M:%S %Z')}**\n\n") 68 | 69 | f.write('\n') 70 | f.writelines(footers) 71 | f.close() 72 | -------------------------------------------------------------------------------- /scripts/make_table.py: -------------------------------------------------------------------------------- 1 | import os 2 | import subprocess as sb 3 | import sys 4 | 5 | """ MEMO 6 | [recommend],[title],[link(url)],[tier(SolvedAC)],[algorithm tags] 7 | [recommend] -> [0 if not recommend else anything] 8 | [title] -> [ 입국심사 ] 9 | [link(url)] -> [https://programmers.co.kr/learn/courses/30/lessons/43238] 10 | [tier(SolvedAC)] -> 14 11 | [algorithm tags] -> [ 이분탐색 ] 12 | 13 | # example 14 | 1$"입국심사"$43238$$[] 15 | """ 16 | 17 | # default 18 | LEVEL = list(range(1, 6)) 19 | TABLE_HEADER = [ "순번" ,"추천 문제", "문제 이름", "솔브드 티어", "알고리즘 태그", "풀이 링크" ] 20 | 21 | def SolvedACTier(tier): 22 | url = f"https://static.solved.ac/tier_small/{tier}.svg" 23 | return f"" 24 | 25 | # README list.md and make table (markdown) 26 | for level in LEVEL: 27 | currentFolder = f"LEVEL{level}" 28 | 29 | listFile = f"{currentFolder}/list.md" 30 | headerFile = f"{currentFolder}/header.md" 31 | READMEFile = f"{currentFolder}/README.md" 32 | 33 | if not os.path.exists(listFile) or not os.path.exists(headerFile): 34 | continue 35 | 36 | 37 | datas = None 38 | with open(listFile, 'r') as f: 39 | # except line 1 40 | datas = [ line.strip() for line in f.readlines()[1:] if len(line.strip()) ] 41 | f.close() 42 | 43 | # Parsing 44 | recommendProblems = [ ] 45 | otherProblems = [ ] 46 | for data in datas: 47 | recommend, title, link, tier, tags, solution = data.strip().split('$') 48 | assert title[0] == '"' 49 | assert title[-1] == '"' 50 | assert link != '' 51 | assert tags[0] == '[' 52 | assert tags[-1] == ']' 53 | 54 | recommendB = False 55 | if recommend != '': 56 | recommendB = True 57 | recommend = ":heavy_check_mark:" 58 | 59 | if tier.strip() == "": 60 | tier = '0' # unrated 61 | 62 | title = title[1:-1] 63 | link = f"https://programmers.co.kr/learn/courses/30/lessons/{link}" 64 | 65 | if 0 <= int(tier) <= 30: # 66 | tier = SolvedACTier(tier) 67 | else: 68 | assert False, f"Tier ERROR (tier : {tier})" 69 | 70 | # Hmm.. 71 | ### TODO ### 72 | tags = tags[1:-1] 73 | if tags != "": 74 | tags = tags.strip().split(',') 75 | tags = ",".join([ tag.strip() for tag in tags ]) 76 | 77 | resultLine = f"|{recommend}|[{title}]({link})|{tier}|{tags}|{solution}|" 78 | if recommendB: 79 | recommendProblems.append(resultLine) 80 | else: 81 | otherProblems.append(resultLine) 82 | 83 | # Make Table (type == list) 84 | tables = [ f"| {'|'.join(TABLE_HEADER)} |" ] 85 | tables.append(f"| {':--:|' * len(TABLE_HEADER)}") 86 | 87 | index = 0 88 | for recProblem in recommendProblems: 89 | tables.append(f"| {index:02d} {recProblem}") 90 | index += 1 91 | for othProblem in otherProblems: 92 | tables.append(f"| {index:02d} {othProblem}") 93 | index += 1 94 | 95 | # README.md < header.md and README.md << "TABLES" 96 | headers = list() 97 | with open(f"{headerFile}", 'r') as f: 98 | headers = f.readlines() 99 | f.close() 100 | 101 | with open(f"{READMEFile}", 'w') as f: 102 | f.writelines(headers) 103 | tables = [ f"{currentLine}\n" for currentLine in tables ] 104 | f.write("\n") 105 | f.writelines(tables) 106 | f.close() 107 | -------------------------------------------------------------------------------- /scripts/update_solution.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | for level in range(1, 6): # 1 ~ 5 5 | folder = f"LEVEL{level}" 6 | data = list() 7 | newData = list() 8 | with open(f"./{folder}/list.md", 'r') as f: 9 | data = f.readlines() 10 | data = [ curdata.strip() for curdata in data ] 11 | f.close() 12 | 13 | newData.append(data[0]) 14 | data = data[1:] 15 | 16 | for info in data: 17 | ID = info.split('$')[2] 18 | 19 | if os.path.exists(f'./solution/{folder}/{ID}/'): 20 | line = info.split('$')[:-1] 21 | info = '$'.join(line) 22 | newData.append(f"{info}$[바로가기](../solution/{folder}/{ID})") 23 | else: 24 | newData.append(info) 25 | 26 | with open(f"./{folder}/list.md", 'w') as f: 27 | newData = [ f"{line}\n" for line in newData ] 28 | f.writelines(newData) 29 | f.close() 30 | -------------------------------------------------------------------------------- /solution/LEVEL1/42576/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | map mp; 5 | 6 | string solution(vector participant, vector completion) { 7 | string answer = ""; 8 | for(auto &i : participant) mp[i]++; 9 | for(auto &i : completion ) mp[i]--; 10 | for(auto i: mp){ 11 | if(i.second != 0){ 12 | answer = i.first; 13 | break; 14 | } 15 | } 16 | return answer; 17 | } 18 | -------------------------------------------------------------------------------- /solution/LEVEL2/60057/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int num_len(int x) { 6 | int ret = 0; 7 | while(x) { 8 | x /= 10; 9 | ret ++; 10 | } 11 | return ret; 12 | } 13 | 14 | int solution(string s) { 15 | int N = s.size(); 16 | int answer = N; 17 | for(int i=1;i * 2 <= N; i++) { 18 | int len = N % i; 19 | vector> zip_slice; 20 | vector slice; 21 | for(int j = 0; j < N / i * i; j += i) slice.emplace_back(s.substr(j, i)); 22 | zip_slice.emplace_back(slice[0], 1); 23 | for(int j = 1; j < (int)slice.size(); j++) { 24 | if(slice[j] == slice[j - 1]) { 25 | zip_slice.back().second += 1; 26 | continue; 27 | } 28 | zip_slice.emplace_back(slice[j], 1); 29 | } 30 | for(int j = 0; j < (int)zip_slice.size(); j++) { 31 | auto [ S, cnt ] = zip_slice[j]; 32 | len += (int)S.size(); 33 | if(cnt > 1) len += num_len(cnt); 34 | } 35 | answer = min(answer, len); 36 | } 37 | return answer; 38 | } 39 | --------------------------------------------------------------------------------