알고리즘 멘토링
멘토 : 김태호
멘티 : 이동현, 정소영, 최다경, 최승호
멘토링 시간 : 매주 목요일 저녁 6시 // 방학 중에는 주 2회 시간 및 날짜는 카톡방 공지
사용언어 : python
참고 서적 : 알고리즘 문제해결 전략
문제 풀이 사이트 : https://www.acmicpc.net, https://algospot.com, https://programmers.co.kr/
멘토링 목적 : 알고리즘의 전반적인 지식을 익히고 간결한 코드를 작성하는 방법을 익힘
매주 숙제가 있으며 숙제는 자기 이름의 폴더에 업로드하며 파일의 이름은 아래와 같이 통일합니다.
BOJ_문제번호로 통일합니다. 예시 : 문제 번호가 3040일 경우 BOJ_3040.py / BOJ_3040.cpp / BOJ_3040.java
AOJ_문제이름으로 통일합니다. 예시 : 문제 이름이 PICNIC일 경우 AOJ_PICNIC
PRO_문제이름으로 통일합니다. 예시 : 문제 이름이 슈퍼키일 경우 PRO_SUPERKEY
숙제를 올릴 때에는 적절한 폴더를 생성하여 그 폴더의 아래에 파일을 저장합니다 예시 : 5월 5일까지 숙제의 경우 05_05 폴더를 생성하여 숙제파일들을 05_05폴더에 저장
숙제의 커밋 메시지는 월일_숙제로 통일합니다
숙제는 되도록 한번에 올리도록 하는데 만약 숙제가 7문제였고 4문제만 풀었을 때 푼문제는 그대로 올리면 되고 못푼 문제는 나중에 올리거나 빈파일로 제출합니다.
틀린 풀이를 적었다 하더라도 반드시 올려야합니다. 왜냐하면 2 ~ 3달 뒤에 실력이 향상되었을 때 과거의 코드를 어떻게 썼는지
되돌아보는 것도 중요하기 때문입니다.
예시 : 5월 5일까지 완료해야하는 숙제일 경우 0505_숙제
1회차(4월 28일) 활동 내용 : 재귀함수 개념 설명 및 문제풀이, 숙제 : BOJ-3040, 17478, 2447
2회차(5월 05일) 활동 내용 : 브루트포스 알고리즘, 숙제 : BOJ-3085, 1476, 1107, 15649, 15650, 15651, 15652, 15654, 15655, 15656, 15657, 15663, 15664, 15665, 15666, 15667
3회차(5월 12일) 활동 내용 : 브루트포스 알고리즘 정리, 코드 논리 흐름 설명, 숙제 해설, 숙제 : BOJ-1182, 10971, 14939, AOJ-PICNIC
4회차(5월 19일) 활동 내용 : 백트래킹, 브루트 포스에서 정답의 가짓 수를 줄이는 방법 (특정 순서대로 경우의 수를 조사하면 정답인 경우의 수가 나온 다는 것을 설명), 숙제 해설, 숙제 : BOJ-10819, 1759, 6603, 9095
5회차(7월 06일) 활동 내용 : next/prev permutation, 백트래킹, dp개념설명 및 문제풀이, 숙제 : BOJ-1248, 10972, 10973, 10974, 11966, 14889, 14501, 14889, 2529, 9095, 1463, 11726, 11052, AOJ-JUMPGAME, WILDCARD
6회차(7월 10일) 활동 내용 : dp 문제풀이, memoization 활용 방법, 숙제 해설, 숙제 : BOJ-16194, 15990, 10844, 2193
7회차(7월 12일) 활동 내용 : dp 문제풀이, 숙제 해설, 숙제 : BOJ-11053, 14002, 1912, 1699, 2225, 15988, 1149, 1309, 11057, 9465, 2156, 1932, 11055, 11722, 11054, 13398, 2133
8회차(7월 16일) 활동 내용 : bit masking 사용 및 활용 방법, 숙제 해설, 숙제 : BOJ-11723, 1182, 14889, 14391 (숙제 문제는 모두 비트 마스킹을 이용하여 풀 것)
9회차(7월 23일) 활동 내용 : dfs, bfs 설명 및 문제풀이, 숙제 : BOJ-1012, 4963, 16929, 13023, 16947, 1697, 12851, 13549, 13913, 17071, 2468, 16964, 7576, 7569, 16940
10회차(7월 28일) 활동 내용 : graph 이론 설명 및 문제풀이, 숙제 : BOJ-2667, 2468, 10451, 10552, 10026, 7576, 7579, 7562, 5427, 2206, 14442, 24891, 1436, 16936
11회차(8월 7일) 활동 내용 : graph 문제풀이, greedy 설명 및 문제풀이, 숙제 : BOJ-1261, 14226, 11047, 11399, 1931, 1991
12회차(8월 11일) 활동 내용 : dp 문제풀이
13회차(8월 20일) 활동 내용 : 코딩테스트 기출문제 풀이
14회차(9월 6일) 활동 내용 : binary search, parametric search, divide and conquer 설명 및 문제풀이, 숙제 : BOJ-9093, 2417, 2110, 7579, 1453, 1074, 2447, 23841, 21734, 21735, 21736, 21737, 21738, 21740 9093, 18428, PRO_GET_REPORT
15회차(9월 13일) 활동 내용 : 숙제 해설, 숙제 : BOJ-7453, 1781, 10942, 2573, 20920, 2607 15회차 추가숙제 : BOJ - 1620, 2630, 2217, 7785, 9935
16회차(9월 26일) 활동 내용 : meet in the middle, heap 설명 및 문제풀이, 숙제 : BOJ-1208, 1655, 17219, 17626, 1477, 14500, 1450, 16236, 1080, 10825, 2343, 17089, 16987
17회차(11월 7일) 활동 내용 : brute force 복습 및 문제풀이, 숙제 : BOJ-14888, 15658, 15659, 2422, 11060, 2293, 2294, 21740
18회차(11월 15일) 활동 내용 : dp 복습 및 문제풀이, 숙제 : BOJ-11048, 1520, 12852, 15486, 2580, 1987, 11066, 12869, 2281, 10564, 2616
19회차(01월 15일) 활동 내용 : c++문법, STL 소개, 이분탐색, 숙제 : BOJ-2805, 2343, 6236, 17951, 1920, 1339
20회차(01월 20일) 활동 내용 : 투 포인터, 부분합, 구간합, 분할 정복, 세그먼트 트리, 숙제 : BOJ-1725, 1992, 2003, 2357, 2467, 11659, 11660, 13398, 2104
21회차(01월 24일) 활동 내용 : 펜윅트리 (point update + range query, range update + point query, range update + range query), count inversions, 숙제 : 1365, 1517, 10090, 7578, 16975, 2820, 2835, 17353
22회차(02월 12일) 활동 내용 : disjoint set, minimum spanning tree, dijkstra, 숙제 : BOJ-1717, 1976, 3830, 1197, 1753, 1916, 1504, 14621, 1185
23회차(05월 05일) 활동 내용 : segment tree with lazy propagation using non-recursive call, 숙제 : BOJ-19236, 19237, 5465, 2238, 1826, 20010, 2176, 1395, 2820, 14245