진행 기간 | 2024년 7월 1일 ~ 2024년 8월 31일 |
스터디 장소 | 고려대 SK미래관 스터디룸 |
정기 스터디 시간 | 금요일 13:00 ~ 15:00[2h] |
플랫폼 | 백준 |
언어 |
JaeH0ng 스터디장 |
Alchernix | jasonwayn | rlaau | prestoo83 |
-
문제 풀이 - 개별, 이론 + 풀어온 문제 리뷰 : 스터디 통해 진행
- 주차가 쌓이면서 익숙해지면, 같이 모여서 시간 정해두고 한 문제를 풀어보는 방법도 고려하겠습니다.
-
각자 진행 상황에 맞춰 다섯 문제를 풀고, github에 자신의 코드를 업로드합니다.(아래 깃허브 업로드 방법 참고)
- 문제표에 자신에게 할당 된 문제가 있습니다. 해당 문제의 풀이에 대해서 발표를 할 예정이니, 잘 준비하여 오시기 바랍니다.
-
매주 스터디가 끝날 때, 그 다음주 스터디에 대한 진행자 1인을 선정합니다.
- 진행자는 다음 주차 주제에 대한 30분 분량의 발표를 준비해옵니다.
- 30분 분량의
발표자료
를 만든 뒤,목요일(스터디 전날) 밤 12시
까지발표 자료
폴더에 업로드합니다.
-
스터디는 상황에 따라 온/오프라인으로, 주 2시간 씩 진행합니다.
- 요일&시간 : 금요일 오후 13시~
- 장소 :
- (온라인) zoom
- (오프라인) 고려대학교 sk미래관 스터디룸
-
1주차 스터디 이후로는 스터디 인원을 픽스할 예정이고, 중도 이탈에 대해서는 벌금을 강하게 받겠습니다. 남은 스터디원들의 혼란을 줄이기 위함입니다.(이탈은 1주차 스터디 전까지, 잘 고민해주시기 바랍니다.)
-
이론 개념 설명 - 40분 : 진행자 이론 발표, 참여자 피드백
- 진행자는 자신이 학습한 이론 내용에 대해 30분 동안 발표를 합니다. 이때 스터디원들은 진행자가 전날 올린 발표 자료를 다운 받아옵니다.
- 진행자의 발표가 끝난 뒤에, 참여자들은 10분 간 이론에 대해 추가되었으면 하는 내용 혹은 각자 자신이 알고리즘 학습을 하며 새롭게 알게 된 내용에 대해 피드백합니다.
-
문제풀이 - 20분 : 진행자 5문제 소개
- 20분 간 진행자는 과제 5문제에 대해 간략한 개념을 설명하고, 이후 참여자들은 서로 작성해온 코드를 확인합니다.(이때 코드 읽는데에 많은 시간을 배정할 수 없으므로, 스터디 전에 미리 보고 오셔도 좋습니다) - 1시간 : 각자의 코드 리뷰, 피드백, 문제에 대한 의견 공유
- 1시간 동안 각자 코드의 피드백을 공유한 뒤, 다른 사람의 코드로부터 새로 배우게 된 내용, 생각 등을 공유합니다.
- 이 저장소를
fork
한다.(잔디 심기를 하려면 꼭 fork 해서 사용하셔야 합니다!) - 생성된 저장소에
이름
혹은Github ID
로 폴더를 생성한다. - 생성된 폴더에 자신의 소스코드를 업로드한다.
- 이때
commit 규칙
을 지키도록 한다!
- 이때
- 원본 저장소로
Pull Requiest(이하 PR)
를 보낸다.- 이때
PR 규칙
을 지키도록 한다!
- 이때
- commit 메시지 :
[X주차]_BOJ_문제번호_문제이름_난이도_걸린 시간
- 타인 코드를 적은 경우 :
[X주차]_BOJ_문제번호_문제이름_난이도_걸린 시간 못 푼 이유 or 핵심적이었던 부분 작성
- description(optional) : 문제 주소
- 터미널에서 작성법:
git commit -m "[1주차]_BOJ_2557_Hello World_브론즈5_5분" -m "https://www.acmicpc.net/problem/2557"
- commit 메시지 :
[DOCS]주제명_이름
- ex.
[DOCS]스택_큐_JaeH0ng
- PR 제목 :
이름_날짜_문제번호
- ex.
JaeH0ng_240629_2588
- ex.
- fork 저장소에서 이 base 저장소로
PR
를 보낼 때,create pull request
를 누르면 된다. - (optional)이때 comment를 남겨서 어떤 부분에서 어떤 오류가 있었고 어떻게 대처했는지 작성한다.
- 첫주차를 제외한 모든 주차에는 5개의 필수 문제와 1~2개의 도전 문제를 넣어뒀습니다.
- 필수 문제 : 5개(5개 아닌 주도 있습니다!) 문항
- 도전 문제는 필수가 아니며, 과제를 마친 뒤 추가적인 문제를 풀어보고 싶으신 분들은 풀어보시면 됩니다.
- 문제를 다양한 자료구조 및 방법으로 해결할 수 있으므로, 따라서 저희는 주제에 맞는 풀이를 우선적으로 스터디하겠습니다.
- 모든 범위를 다룰 수는 없었습니다(8회 스터디라는 짧은 기간, 학습 정도 등). 다만 저희가 스터디를 통해 주체적으로 코드를 짜보는데에 큰 의미가 있을 거라고 생각합니다.
주차 | 주제 | 문제 링크 | 문제 제목 | 난이도 |
---|---|---|---|---|
0주차 | 깃허브 사용법 익히기 | 2588번 | 곱셈 | 브론즈3 |
0주차 | 깃허브 사용법 익히기 | 11718번 | 그대로 출력하기 | 브론즈3 |
------ | -------- | ----------- | ------------ | ----------- |
1주차 | 스택 | 17608번 (prestoo83) | 막대기 | 브론즈4 |
1주차 | 스택 | 9012번 (jasonwayn) | 괄호 | 실버4 |
1주차 | 스택 | 10828번 (Alchernix) | 스택 | 실버4 |
1주차 | 큐 | 11866번 (rlaau) | 요세푸스 문제 0 | 실버5 |
1주차 | 큐 | 26043번 (JaeH0ng) | 식당 메뉴 | 실버4 |
1주차 | 큐 | 1966번 | 프린터 큐 | 실버3(도전문제) |
1주차 | 스택 | 15500번 | 이상한 하노이 탑 | 실버2(도전문제) |
------ | -------- | ----------- | ------------ | ----------- |
2주차 | 힙 | 11004번 (jasonwayn) | K번째 수 | 실버5 |
2주차 | 우선순위 큐 | 1417번 (Alchernix) | 국회의원 선거 | 실버5 |
2주차 | 트리 | 14244번 (rlaau) | 트리 만들기 | 실버5 |
2주차 | 트리 | 9372번 (JaeH0ng) | 상근이의 여행 | 실버5 |
2주차 | 힙 | 1927번 (prestoo83) | 최소 힙 | 실버2 |
2주차 | 이진트리순회 | 1991번 | 트리 순회 | 실버1(도전문제) |
------ | -------- | ----------- | ------------ | ----------- |
3주차 | DFS&BFS | 1260번 (Alchernix) | DFS와 BFS | 실버2 |
3주차 | DFS&BFS | 2606번 (rlaau) | 바이러스 | 실버3 |
3주차 | DFS&BFS | 1012번 (JaeH0ng) | 유기농 배추 | 실버2 |
3주차 | DFS&BFS | 7576번 | 토마토 | 골드5 |
------ | -------- | ----------- | ------------ | ----------- |
4주차 | 해시 | 9933번 (rlaau) | 민균이의 전화번호 | 브론즈1 |
4주차 | 해시 | 10815번 (JaeH0ng) | 숫자 카드 | 실버5 |
4주차 | 해시 | 7785번 (prestoo83) | 회사에 있는 사람 | 실버5 |
4주차 | 해시 | 4158번 (jasonwayn) | CD | 실버5 |
4주차 | 해시 | 9375번 (Alchernix) | 패션왕 신해빈 | 실버3 |
4주차 | 해시 | 4358번 | 생태학 | 실버2(도전문제) |
------ | -------- | ----------- | ------------ | ----------- |
5주차 | 그래프이론 | 1388번 (JaeH0ng) | 바닥 장식 | 실버4 |
5주차 | 그래프이론 | 16173번 (prestoo83) | 점프왕 쩰리 (small) | 실버4 |
5주차 | 그래프이론 | 10451번 (jasonwayn) | 순열 사이클 | 실버3 |
5주차 | 그래프이론 | 11724번 (Alchernix) | 연결 요소의 개수 | 실버2 |
5주차 | 최단 경로 문제 | 18352번 (rlaau) | 특정 거리의 도시 찾기 | 실버2 |
5주차 | 최단 경로 문제 | 11403번 | 경로 찾기 | 실버1(도전문제) |
------ | -------- | ----------- | ------------ | ----------- |
6주차 | DP | 2775번 (prestoo83) | 부녀회장이 될테야 | 브론즈1 |
6주차 | DP | 1010번 (jasonwayn) | 다리 놓기 | 실버5 |
6주차 | DP | 9655번 (Alchernix) | 돌 게임 | 실버5 |
6주차 | DP, 그리디 | 2839번 (rlaau) | 설탕 배달 | 실버4 |
6주차 | DP | 1463번 (JaeH0ng) | 1로 만들기 | 실버3 |
6주차 | DP | 1149번 | RGB거리 | 실버1(도전문제) |
------ | -------- | ----------- | ------------ | ----------- |
7주차 | 그리디 | 4796번 (Alchernix) | 캠핑 | 브론즈1 |
7주차 | 그리디 | 1789번 (rlaau) | 수들의 합 | 실버5 |
7주차 | 그리디 | 11399번 (JaeH0ng) | ATM | 실버4 |
7주차 | 그리디 | 11047번 (prestoo83) | 동전 0 | 실버4 |
7주차 | 그리디 | 13305번 (jasonwayn) | 주유소 | 실버3 |
7주차 | 그리디 | 1931번 | 회의실 배정 | 실버1(도전문제) |
------ | -------- | ----------- | ------------ | ----------- |
8주차 | 이분탐색 | 10815번 (rlaau) | 숫자 카드 | 실버5 |
8주차 | 이분탐색 | 1920번 (JaeH0ng) | 수 찾기 | 실버4 |
8주차 | 이분탐색 | 1072번 (prestoo83) | 게임 | 실버3 |
8주차 | 이분탐색 | 7795번 (jasonwayn) | 먹을 것인가 먹힐 것인가 | 실버3 |
8주차 | 이분탐색 | 2343번 (Alchernix) | 기타 레슨 | 실버1 |
8주차 | 이분탐색 | 2470번 | 두 용액 | 골드5(도전문제) |
- 아래는 학기 중에 제가 잘 참고한 유용재 교수님의 강의영상 자료입니다. 저희는 시간 관계 상 강의를 같이 듣진 않겠지만, 아래 강의의 순서를 기반으로 주차 순서를 구성하였습니다. 학습에 도움이 되시리라 생각합니다.
- 왼쪽이 자구, 오른쪽이 알고입니다.
번호 | 주제 | 유튜브 링크 | 번호 | 주제 | 유튜브 링크 |
---|---|---|---|---|---|
1 | Python 기초 문법 및 시간복잡도의 이해 | Link | 1 | 시간복잡도와 공간복잡도의 이해 | Link |
2 | Linked List와 연결형 자료구조 | Link | 2 | 정렬과 탐색을 위한 효과적인 방법 | Link |
3 | Stack 자료구조의 이해와 응용 | Link | 3 | 동적계획을 이용한 문제 해결 성능 제고 | Link |
4 | Queue와 환형 Queue의 이해 | Link | 4 | 기초 정수론과 암호화 알고리즘 | Link |
5 | 우선순위 Queue와 이진 Tree의 기초 | Link | 5 | 백트래킹을 이용한 해의 탐색과 그 실제 | Link |
6 | 이진 Tree의 구현과 데이터 순회 | Link | 6 | 휴리스틱과 욕심쟁이 알고리즘 | Link |
7 | 균형을 고려한 여러 가지 Tree | Link | 7 | 분할정복의 뜻과 문제 해결에의 적용 | Link |
8 | Hash Table을 통한 데이터의 적재 | Link | 8 | Python을 이용한 기하 알고리즘 입문 | Link |
9 | Graph의 뜻과 여러 가지 구현 방법 | Link | 9 | 경우의 수 계산을 위한 기초 조합론 | Link |
10 | Graph에 기반한 최적 Tree 산출 | Link | 10 | 기계학습에서의 알고리즘과 그 토대 | Link |
11 | Graph에서의 최적 경로 문제와 해법 | Link | 11 | 확률적 알고리즘을 이용한 문제 해결 | Link |
- | - | - | 12 | P-NP 문제와 알고리즘의 내일 | Link |
- 시간복잡도와 공간복잡도도 체크한 뒤, 해당 자료구조/알고리즘의 장단점을 비교하기
- 30분이 생각보다 길지 않으니 최대한 핵심 위주로
- 이론 피드백 이후, 새로 알게 된 사실도 꼭 메모해서 정리하기
- 각 언어별 문법은 다루지 않겠습니다.
- 한 문제를 푸는 데 1시간이 걸려도 안 풀리는 경우, 타인의 코드를 참고할 수 있습니다.
- 단
1시간은 무조건 혼자서 도전해봐야
의미가 있으며,commit 규칙
을 참고하여 작성해주시기 바랍니다.
- 단
- https://github.com/CodeSquad-2023-BE-Study/Algorithm-Study
- https://github.com/ellynhan/challenge100-codingtest-study
- https://waytocse.tistory.com/59
- https://velog.io/@mandarin913/%EC%8A%A4%ED%84%B0%EB%94%94-GitHub-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95
- https://velog.io/@qmflf556/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8A%A4%ED%84%B0%EB%94%94-%EC%8B%9C%EC%9E%91
- https://velog.io/@sezeme1212/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8A%A4%ED%84%B0%EB%94%94-%EA%B8%B0%ED%9A%8D%EC%95%88