2022-01-23 시작된 알고리즘 스터디입니다.
- 시간: 매주 일요일 15:00 ~ 18:00 오프라인
- 방식:
- 알고리즘 실력 향상을 위한 50문제를 매주
3~4문제
씩 출제 - 각자 문제풀이에 필요한 알고리즘 지식을 공부하고, 구현해봅니다.
- 공부 방법:
- 풀이할 문제의 알고리즘 개념을
Google
검색으로 블로그/ 강의등을 보면서 이해합니다. - 이해가 되었다면, 기초문제를 풀어봅니다.
- 문제풀이 중 20분이 경과했는데도 도저히 모르겠다면, 정답을 참고하면서 코드를 작성해봅니다.
- 정답을 봐도 모르겠다면, 조금 쉬었다가 다시 접근해봅니다.
- 풀이할 문제의 알고리즘 개념을
- 공부 방법:
- 오프라인 스터디 시간에 본인이 공부한 내용, 접근 방법, 로직&코드 리뷰
- 출제된 문제 외에 풀고싶은 문제를 추가적으로 풀어도 무방합니다.
- 20분간 풀집중해서 고민해도 안풀린다면, 풀이를 찾아봐도 되지만 무지성으로 코드를 따라하는 것이 아닌, 스터디원에게 풀이 개념을 설명해줄 수 있을 정도는 공부합시다.
- 기본적으로 사용되는 알고리즘의 원리를 정확하게 아는 것을 목표로 공부합니다.
- 알고리즘 실력 향상을 위한 50문제를 매주
- 이 저장소를
fork
합니다. - 생성된 원격 저장소에
이름
으로디렉토리
생성합니다. - 생성된
디렉토리
에 자신의소스코드
를 업로드합니다. (폴더명에:
불가능) file
명은문제제목_문제번호(존재하는 경우).py
로 작성합니다.ex. HanSeungJae > BOJ > 정수N개의합_15596.py
commit
시, 규칙을 지킵니다.- 원본 저장소로
Pull Request
를 합니다. - 스터디 참여자의
PR
을 보고코드리뷰
를 실시합니다. - !!! WARNING !!!기존 폴더를 지우면 안됩니다!
commit
메시지:[플랫폼] 문제명 / 난이도 / 걸린시간(대략적으로 기재)
description
: 문제URL
(optional)
$ git commit -m '[BOJ] 고양이 / 브론즈5 / 1분' -m 'https://www.acmicpc.net/problem/10171'
- 플랫폼 작성법:
[BOJ]
- 백준[PGS]
- 프로그래머스[LTC]
- 리트코드[CFS]
- 코드포스[SWEA]
- Samsung SW Expert Academy[ETC]
- 그외
PR
은 매주일요일
모이기 전, 업로드합니다.PR 제목
: 이름 / 주차ex. HanSeungJae / 1주차
comment
는 자유이나 가능하다면, 문제풀이를 하면서 가장 인상깊었던 부분(어려웠던 부분, 잘 풀어냈다고 생각되는 부분)을 작성합니다.
PR
에서 코드리뷰를 합니다.- 전체 코드 흐름을 파악한 뒤, 작성자가 어떻게 풀었는지 이해합니다.
- 의견제시
- 잘했다고 생각하는 부분
- 이렇게 하면 더 좋을 것 같다고 생각하는 부분
- 왜 이렇게 풀었는지 궁금한 부분
- 또 다른 풀이 방식 제시
1주차(01-24 ~ 01-29) (함수/재귀) - 정수 N개의 합, 셀프 넘버, 한수, 팩토리얼, 피보나치 수 5, 별 찍기 - 10, 하노이 탑 이동 순서2주차(01-31 ~ 02-05) (완전탐색&백트래킹) - 차이를최대로(기본), 블랙잭(응용), 사다리조작(심화)3주차(02-07 ~ 02-12) (완전탐색&백트래킹) - 좋은수열(응용), 연산자끼워넣기(응용), 스타트와 링크(응용), 치킨배달(심화)4주차(02-14 ~ 02-19) (BFS) - 단지번호 붙이기(기본), 연구소(응용), 다리만들기(응용)5주차(02-21 ~ 02-26) (BFS) - 미로 탐색(기본), 아기상어(응용), 치즈(응용)6주차(02-28 ~ 03.05) (DFS) - 단지번호 붙이기(기본) dfs로 풀어보기, 안전영역(응용), 알파벳(응용), 양구출작전(응용)7주차(03-07 ~ 03-12) (DFS&구간합) - 적록색약(응용), 구간합구하기5, 개똥벌레, 소형기관차8주차(03-14 ~ 03-19) (DP) - 1로 만들기, 동전 1, 동전 2, 이친수9주차(03-21 ~ 03-26) (DP) - 이동하기, 평범한 배낭, LCS, 가장 긴 증가하는 부분 수열10주차(03-28 ~ 04-02) (다익스트라&플로이드-워셜) - 최단경로(기본), 특정한 최단 경로(기본), 달빛 여우(응용), 플로이드(기본), 키 순서(응용)11주차(04-04 ~ 04-09) (위상정렬) - 줄 세우기(기본), 게임개발(응용), 최종순위(응용), 장난감조립(응용)12주차(04-11 ~ 04-16) (DP) - 가장 긴 증가하는 부분수열 4, 욕심쟁이 판다, 로봇 조종하기, 구간 나누기13주차(04-18 ~ 04-23) (트리+DP) - 사회망서비스(기본), 트리와 쿼리(응용), 우수마을(응용), 트리나라(매우 심화)14주차(04-25 ~ 04-30) (이분탐색&DP) - 숫자카드(기본), 피자굽기(응용), 중량제한(응용), 보석 줍기(DP+누적합)15주차(05-02 ~ 05-07) - 신고 결과 받기, k진수에서 소수 개수 구하기, 주차 요금 계산, 양궁대회, 양과 늑대16주차(05-09 ~ 05-14) - 다트 게임, 캐시, 프렌즈4블록, 셔틀버스, 추석 트래픽17주차(05-16 ~ 05-21) - 메뉴 리뉴얼, 순위 검색, 합승 택시 요금, 광고 삽입, 카드 짝 맞추기18주차(05-30 ~ 06-04) - 문자열 압축, 괄호 변환, 자물쇠와 열쇠, 기둥과 보 설치, 외벽 점검19주차(06-06 ~ 06-11) - 실패율, 오픈채팅방, 후보키, 길 찾기 게임, 매칭 점수20주차(06-13 ~ 06-18) - 뉴스 클러스터링, 파괴되지 않은 건물, 사라지는 발판, 블록 이동하기, 방금그곡21주차(06-20 ~ 06-25) - 숫자 문자열과 영단어, 비밀지도, 압축, 파일명 정렬, n진수 게임22주차(07-11 ~ 07-16) - 좌표 압축, 랜선 자르기, 나무 자르기, 수 고르기, 부분합- to be continued...