Skip to content

NaKaLiGoBa/Algorithm

Repository files navigation

알고리즘 스터디

이후 스터디 2023.12.26~

Table of Concents


요약

  • 초기에 스터디 구성시 효과적인 운영에 대해 고민을 했습니다.
  • 비슷한 고민을 가진 사람들을 위해 알고리즘 스터디 활동 내역과 관련 정보들을 문서화 진행중입니다.

성장 포인트

  • 빈출 유형[1] 반복 학습을 통해, 대기업 코딩테스트를 통과할 수 있는 실력과 자신감
  • 주력 프로그래밍 언어 특성을 체득하고, 컴퓨팅 사고력 향상
  • 각자의 풀이를 제출하고 코드 리뷰를 통해 피드백
  • 발표를 통해 소프트 스킬 향상
  • 알고리즘 풀이 루틴을 만들어 습관 형성

🛠️ 2차 스터디 운영 기록

개요

  • 모집 기간: 2023.08.29 ~ 2023.09.06
  • 활동 기간: 2023.09.07 ~ 2023.11.28 (약 2개월)
  • 모집 인원: 4명 (Java 4)

학습 결과

아래와 같은 문제와 유형들을 다룰 수 있었습니다:

3주차


2주차


1주차


🛠️ 1차 스터디 운영 기록

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주일간 동일한 유형을 반복적으로 풀이

운영 프로토콜

1. 스터디 시작 전, 일요일 자정까지 관련된 유형의 문제들을 선별하여, 노션 페이지에 업데이트합니다.

Screenshot 2023-09-05 at 9 10 40 AM


2. 선별된 문제를 월, 화, 수, 목, 금에 랜덤으로 분배합니다.

3. 슬랙을 통해, 평일 오전 10시에 문제를 공개합니다.

Screenshot 2023-09-05 at 9 13 46 AM


4. 공개된 문제를 점심 시간전 (오후 1시)까지 풀이를 하고 스터디 리파짓토리에 PR를 합니다. 풀지 못했다면 그대로 제출.

5. 점심 시간 이후, 오후 2시 부터 3시까지 코드 리뷰를 합니다.


6. 오후 3시 부터 작성된 코드를 발표를 합니다.

발표자는 무작위로 선별합니다. 6명 기준 1~2명 정도가 적당했습니다. 인원에 따라 적정하게 비율을 조율하시면 좋을것 같고, 모든 팀원들이 말할 수 있는 기회를 최대한 보장하는게 도움이 되었습니다.

image

7. 발표는 FigJam의 판서 기능을 이용합니다.

자신의 논리를 그림으로 표현하며 설명하는 과정이 중요하다고 생각합니다. 유럽 및 영어권 국가에서 보통 이런 방식을 사용합니다.

Screenshot 2023-09-05 at 9 22 33 AM

8. 다음날 3-7을 반복합니다.


학습 결과

아래와 같은 문제와 유형들을 다룰 수 있었습니다:

수학 및 문자열


자료구조 - 스택, 큐, 맵


DFS, BFS, 그래프 이론


완전탐색, 백트래킹


구름톤 챌린지

  1. 운동 중독 플레이어 - 수학 및 구현
  2. 프로젝트 매니징 - 수학 및 구현
  3. 합 계산기 - 수학 및 구현
  4. 완벽한 햄버거 만들기 - 수학 및 구현
  5. 이진수 정렬 - 수학 및 구현
  6. 문자열 나누기 - 완전탐색
  7. 구름 찾기 깃발 - 완전탐색
  8. 통증 - 완전탬색
  9. 폭탄 구현하기(2) - 완전탐색
  10. GameJam - 시뮬레이션
  11. 통증 (2) - DP
  12. 발전기 - 완전탐색
  13. 발전기 (2) - 완전 탐색
  14. 작은 노드 - 그래프
  15. 과일 구매 - 그리디
  16. 연합 - 그래프
  17. 통신망 분석 - 그래프
  18. 중첩 점 - DP&시뮬레이션

📚 알고리즘 문제 소스

온라인 저지 사이트


각각의 장단점이 있습니다:

  • LeetCode프로그래머스의 경우 입력에 대한 고민 없이 알고리즘에 집중할 수 있는 환경이 조성되어있습니다.
  • 백준은 다양한 문제들을 접할 수 있습니다.
  • 프로그래머스는 대기업 코딩테스트 환경과 동일하여 실제 코딩테스트 이전에 익숙해지면 도움이 됩니다.
  • LeetCode는 디스커션 섹션에서 다양한 언어와 다양한 풀이들을 접할 수 있고, 양질의 문제들이 선별되어있습니다.

알고리즘 유형 분류

아래와 같은 유형들로 분류를 하였습니다. 목록의 순서는 빈출도와 중요도를 고려하여 작성되었습니다.

  1. 수학 및 문자열
  2. 자료구조 - 스택, 큐, 맵
  3. DFS, BFS, 그래프 이론
  4. 완전탐색, 백트래킹
  5. 누적합, 투포인터
  6. DP, LIS, 비트마스킹
  7. 그리디
  8. 이분탐색
  9. 최단거리
  10. MST

Q&A

Q1. 서로 다른 언어를 가진 인원들이 있는 경우

  • 자료구조의 구현 방식과 메서드 이름의 차이가 있을 수 있고, 다니나믹 혹은 스태틱 타이핑에서 오는 차이 및 OOP, 함수형에서 오는 차이가 있습니다.
  • 하지만, 문제를 푸는 논리는 공통적이기 때문에 큰 문제가 없이 이해할 수 있었습니다.
  • 문제점은 각 언어의 best practice가 있는데, 언어가 다르면 피드백을 해주기 어려울 수 있다는 점이 있습니다.

References

  1. tony (2020) Github "최근 코딩테스트 정리"

Appendix. A

About

네카라구배조 알고리즘 스터디

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors