├── .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 | [](https://github.com/tony9402/programmers/actions/workflows/auto_update_table.yml)
4 | [](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 | [](https://github.com/tony9402/programmers/actions/workflows/auto_update_table.yml)
4 | [](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 |
--------------------------------------------------------------------------------