이후 스터디 2023.12.26~
Table of Concents
- 초기에 스터디 구성시 효과적인 운영에 대해 고민을 했습니다.
- 비슷한 고민을 가진 사람들을 위해 알고리즘 스터디 활동 내역과 관련 정보들을 문서화 진행중입니다.
- 빈출 유형[1] 반복 학습을 통해, 대기업 코딩테스트를 통과할 수 있는 실력과 자신감
- 주력 프로그래밍 언어 특성을 체득하고, 컴퓨팅 사고력 향상
- 각자의 풀이를 제출하고 코드 리뷰를 통해 피드백
- 발표를 통해 소프트 스킬 향상
- 알고리즘 풀이 루틴을 만들어 습관 형성
- 모집 기간: 2023.08.29 ~ 2023.09.06
- 활동 기간: 2023.09.07 ~ 2023.11.28 (약 2개월)
- 모집 인원: 4명 (Java 4)
아래와 같은 문제와 유형들을 다룰 수 있었습니다:
10시 부터 19시까지 운영되는 웹개발 국비KDT훈련 스케쥴에 초점을 맞춰 스터디를 운영했습니다. 아래 운영 프로토콜을 확인하여 인사이트를 얻어가시면 좋습니다.
- 모집 기간: 2023.06.30 ~ 2023.07.07
- 활동 기간: 2023.07.10 ~ 2023.09.06 (약 2개월)
- 모집 인원: 5명 (Java 3, JS 1, Python 1)
- 사용된 협업 툴: 슬렉, 노션, 깃헙, FigJam
- 평일 하루 1문제, 매주 5문제를 접하고 풀기
- 팀원들간 상호 피드백 교환
- 적어도 1주일에 한 번 이상 풀이 발표
- 적어도 1주일간 동일한 유형을 반복적으로 풀이
발표자는 무작위로 선별합니다. 6명 기준 1~2명 정도가 적당했습니다. 인원에 따라 적정하게 비율을 조율하시면 좋을것 같고, 모든 팀원들이 말할 수 있는 기회를 최대한 보장하는게 도움이 되었습니다.
7. 발표는 FigJam의 판서 기능을 이용합니다.
자신의 논리를 그림으로 표현하며 설명하는 과정이 중요하다고 생각합니다. 유럽 및 영어권 국가에서 보통 이런 방식을 사용합니다.
아래와 같은 문제와 유형들을 다룰 수 있었습니다:
- 프로그래머스: 신고결과 받기
- 백준 1966번: 프린터 큐
- 백준 1158번: 요세푸스 문제
- 프로그래머스: 크레인 인형뽑기 게임
- 백준 17608번: 막대기
- 백준 2405번: 괄호의 값
- 백준 2667번: 단지번호 붙이기
- 백준 11724번: 연결 요소의 개수
- 프로그래머스: 타겟 넘버
- 백준 2178번: 미로 탐색
- 백준 1260번: DFS와 BFS
- 백준 10974번: 모든 순열
- 백준 2644번: 촌수계산
- 백준 15649번: N과 M (1)
- 백준 14888번: 연산자 끼워넣기
- 백준 2606번: 바이러스
- 운동 중독 플레이어 - 수학 및 구현
- 프로젝트 매니징 - 수학 및 구현
- 합 계산기 - 수학 및 구현
- 완벽한 햄버거 만들기 - 수학 및 구현
- 이진수 정렬 - 수학 및 구현
- 문자열 나누기 - 완전탐색
- 구름 찾기 깃발 - 완전탐색
- 통증 - 완전탬색
- 폭탄 구현하기(2) - 완전탐색
- GameJam - 시뮬레이션
- ✅통증 (2) - DP
- 발전기 - 완전탐색
- 발전기 (2) - 완전 탐색
- 작은 노드 - 그래프
- 과일 구매 - 그리디
- 연합 - 그래프
- 통신망 분석 - 그래프
- 중첩 점 - DP&시뮬레이션
각각의 장단점이 있습니다:
- LeetCode와 프로그래머스의 경우 입력에 대한 고민 없이 알고리즘에 집중할 수 있는 환경이 조성되어있습니다.
- 백준은 다양한 문제들을 접할 수 있습니다.
- 프로그래머스는 대기업 코딩테스트 환경과 동일하여 실제 코딩테스트 이전에 익숙해지면 도움이 됩니다.
- LeetCode는 디스커션 섹션에서 다양한 언어와 다양한 풀이들을 접할 수 있고, 양질의 문제들이 선별되어있습니다.
아래와 같은 유형들로 분류를 하였습니다. 목록의 순서는 빈출도와 중요도를 고려하여 작성되었습니다.
- 수학 및 문자열
- 자료구조 - 스택, 큐, 맵
- DFS, BFS, 그래프 이론
- 완전탐색, 백트래킹
- 누적합, 투포인터
- DP, LIS, 비트마스킹
- 그리디
- 이분탐색
- 최단거리
- MST
- 자료구조의 구현 방식과 메서드 이름의 차이가 있을 수 있고, 다니나믹 혹은 스태틱 타이핑에서 오는 차이 및 OOP, 함수형에서 오는 차이가 있습니다.
- 하지만, 문제를 푸는 논리는 공통적이기 때문에 큰 문제가 없이 이해할 수 있었습니다.
- 문제점은 각 언어의 best practice가 있는데, 언어가 다르면 피드백을 해주기 어려울 수 있다는 점이 있습니다.


