- 이론 정리
- 커리큘럼에서 정해진 주차 별 주제에 따라 이론 정리
- 정리 방식은 자유, 각자 편한 방식 이용
- ex) 개발 블로그 이용, md파일 정리
- 오프라인 모임에서는 주차 별로 정해진 사람이 강의를 진행
- 강의 진행 하는 사람은 문제도 정해 올 것 (총 문제 6개)
- 문제 풀이
- 주차 별 주제 당 문제 풀이
- 개인적으로 풀고 싶은 문제 풀이 - 주제, 개수 자유 (최소 1일 1개 권장)
- 정해진 풀이는 gitHub으로 공유
- 개인 풀이는 X
- 단일 코드 파일만 올릴 것 (.cpp, .java 등)
- 리뷰
- 서로 공유된 풀이에 대해 gitHub에 comment로 리뷰를 남긴다.
- 코드에 대한 피드백
- 자신의 풀이에 달린 리뷰를 확인하고 해당 문제에 대한 좋은 예제를 찾아 분석
- 코드를 수정하여 다시 gitHub에 올린다.
- 리뷰는 자유롭게 진행, 적어도 하루에 한 번은 스터디원들의 코드를 볼 것을 권장
- 풀었던 문제 설명
- 공통, 개인 문제 둘다 상관 없음
- 풀이에 대한 피드백
- 저번 주차에 정해진 문제 풀이에 대한 공유 및 피드백 (1시간 30분)
- 한 문제 당 돌아가면서 풀이 공유
- 좋은 코드에 대한 분석을 공유
- 해당 문제를 푸는 좋은 방법을 공유한다.
- 해당 주차에 주제의 대한 이론 강의 (30분)
- 주차 별로 돌아가며 한 사람씩 진행
- 강의 후 다같이 피드백
- 그 주의 주제에 해당하는 문제 풀이, 공유 (1시간)
- 정해진 대표 문제 1개 풀이 (40분)
- 풀이 방법 공유 (20분)
글적한 알고리즘에서의 GitHub 협업은 Feature Branch Workflow 방법을 이용한다.
- 온라인 모임
- 일주일에 2번 온라인 화상 모임 진행
- 매주 목요일 오전 10시, 일요일 오전 10시
- 문제 풀이 방식에 대해 설명, 왜 이러한 방식으로 풀었는지
- 오프라인 모임
- 일주일에 1번 모임
- 매주 화요일 2시 - 5시
- 이전 주차에서 정해진 대표 문제 풀이 공유 및 피드백 진행
- 주차 별 주제에 대한 강의 후 대표 문제 풀이
- 시뮬레이션 문제 풀이
- 정렬 (quick sort, merge sort, heap sort)
- BST (Binary search tree)
- Greedy Algorithm
- BFS & DFS
- Dynamic programming
- 언어는 본인이 원하는 언어로 진행
- 사람들이 알고리즘 문제를 풀 때 주로 많이 사용하는 언어: C++ > C > Java
- C++
- C++11, STL, scanf/printf를 사용하는 것이 좋다.
- C
- C++을 사용하는 것을 더 추천.
- Java
- Scanner를 이용하여 입력을 편리하게 받는 것이 좋다.
코드플러스 SW역량테스트 준비 문제 참고
- 1주차 (시뮬레이션 문제) :
- 윤녕 - 주사위 굴리기, 톱니바퀴
- 진영 - 뱀, 미네랄
- 동규 - 톱니바퀴2, 로봇청소기
- 승수 - iSharp, LCD Test
- 공통 - 경사로, 드래곤 커브
문제 출처 2018 sw 역량테스트(총 56문제)