Skip to content

minjeeki/Algorithm_Seoul_01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SSAFY 12기 알고리즘 스터디

목차 (Table of Contents)

  1. 스터디 소개

  2. 스터디 내용 & 규칙

  3. 월별 스터디 활동 기록

  4. 학습 참고 자료

1. 스터디 소개 (Introduction)

1-1. 알고리즘 공부를 함께 하는 이유

  • 알고리즘과 자료구조는 소프트웨어 개발의 핵심 기초입니다. 효율적인 코드를 작성하고 복잡한 문제를 해결하는 능력은 대부분 알고리즘적 사고에서 시작됩니다. 이러한 이유로 많은 기업의 채용 과정에서 코딩 테스트가 필수적이며, 기술 면접에서도 기본적인 자료구조와 알고리즘 구현 능력을 자주 묻습니다.

  • 혼자서도 학습할 수 있지만, 함께 학습함으로써 다양한 관점에서 문제를 접근하고, 상호 피드백을 통해 더 깊이 있는 이해와 효율적인 문제 해결 능력을 키울 수 있습니다.

  • 스터디에서 서로의 코드를 리뷰하고, 각자의 풀이 방법을 설명하는 과정을 통해 자신이 놓쳤던 부분을 발견하고, 다른 사람의 접근 방식을 배울 수 있습니다. 또한, 협업과 의사소통 능력도 향상시킬 수 있어, 실무에서의 팀워크와 기술 면접에서도 유리한 점을 갖추게 됩니다.

  • 따라서 저희 스터디는 알고리즘 문제 풀이와 코드 리뷰, '알고리즘/자료구조'에 대한 면접 연습을 통해 알고리즘과 자료구조에 대한 이해를 심화하고, 기업의 코딩 테스트와 기술 면접에 대비하고자 합니다.

1-2. 스터디원

김희수 김민지 이아영 송경민
김희수-프로필
문제풀이 DB 노션
김민지-프로필
문제풀이 DB 노션
이아영-프로필
문제풀이 DB 노션
송경민-프로필
문제풀이 DB 노션

1-3. 스터디 운영 방식

  • 스터디 미팅은 매주 화요일, 금요일 점심 시간에 멀티캠퍼스 역삼 201호에서 진행합니다.

  • 스터디 협업 툴은 Github과 Mattermost, Notion을 이용합니다.

  • 스터디는 1학기 기간 동안(12월쯤 종료) 진행하며, 종료 후에는 스터디 레포지토리를 fork 또는 본인 github 내 레포지토리와 연결하는 등의 작업을 진행합니다.


  1. 코딩 문제 풀이를 통해 알고리즘 실력을 향상시키는 것을 목표로 합니다.
    매주 2개의 문제를 선정해 함께 풀고, 매일 자율적으로 1개 이상의 문제를 풀고 인증합니다. 푼 문제에 대해서는 코드리뷰를 필수적으로 진행해 다른 사람의 코드를 읽고 이해하는 연습을 합니다.

    매일 자율 문제 풀이 및 인증 :
    각자 수준에 맞게 풀고 싶은 문제를 자유롭게 풀고 Mattermost에 인증합니다. 코드 리뷰를 받고 싶은 문제에 대해서는 본인 브랜치에서 Daily Solving 폴더(디렉토리)에 풀이 코드를 올리는 작업을 진행한 뒤 PR을 남깁니다.
    • Daily Solving 폴더에는 각자 본인 이름의 폴더에서 작업을 진행하며, 작업 양식은 따로 없이 자유롭게 진행합니다.

    주간 문제 풀이 및 인증 :
    미팅 시작 전까지 본인 브랜치에서 Weekly Solving 폴더에 풀이 코드를 올리는 작업을 진행한 뒤 PR을 남깁니다.
    • 주간 미팅 및 코드 리뷰 : 미팅 시간에는 공통 문제에 대해서 후기를 공유한 뒤 본인의 코드에 대해서 다른 사람들에게 발표하고 이해시키는 시간을 갖습니다. 미팅 당일 자정 전까지 다른 사람의 코드에 대해 코드 리뷰를 남깁니다. PR closed는 레포지토리 담당자가 당일 자정에 진행합니다.

    • 주간 문제 선정 : 미팅이 끝난 이후 같이 풀 문제를 선정합니다. 선정한 문제는 Mattermost 그룹채팅방과 Github Issue에 게시하고, 레포지토리 담당자가 main branch를 이용해서 Weekly solving 폴더에 해당 문제에 대한 작업을 진행합니다.

      • 자율 문제 풀이 진행 중 함께 풀고 이야기 나누기 좋을 것 같은 문제에 대해서 추천을 받아서 진행하거나 학습 참고 자료에 있는 문제 리스트 중 하나를 선택해 진행합니다.

      • 알고리즘 학습을 위해 주차별로 주제별 문제풀이를 진행합니다. 백준 문제집에서 주제별 문제들을 추려서 개념 공부와 함께 풀 수 있는 범위까지 풀이를 진행합니다.


    월간 '자료구조, 알고리즘' 주제 면접 대비 :
    매월 마지막주에는 공통 문제 풀이 대신 '알고리즘, 자료구조'를 주제로 면접 질문과 답변을 3세트 가량 가져옵니다. 이후 2인 1조로 면접 대비를 진행합니다.
    • 월간 주제는 매월 초 공지하며, 팀원들을 해당 알고리즘과 자료구조에 대해서 자유롭게 이론 학습, 구현 실습을 진행하며 해당 자료구조에 대해서 익힙니다.

    • 2인 1조는 랜덤 뽑기를 통해서 진행합니다.

    • 면접 질문을 가져온 사람이 본인의 질문과 답변에 대해서 상대방에게 본인이 작성한 답을 보지 않고 설명을 진행합니다. 설명이 끝난 후에는 준비한 답변과 비교해 어느정도 대답했는지를 확인하고, 질문과 답변에서 나온 용어에 대해서 함께 살펴보며(인터넷 서칭 가능) 꼬리 질문에 대한 대비를 합니다.

    • 미팅 시간 이후에는 Monthly study에 개인적으로 자유롭게 작성합니다. (이번달에 해당 주제에 대해서 본인이 공부한 자료, 미팅에서 나온 질문과 답변 정리, 미팅을 진행하며 새로 공부한 내용 등)


  1. 협업 관리 도구 및 방식에 대한 활용 능력을 높이는 것을 목표로 합니다.
    스터디 운영 기간 동안 Git과 Github의 기능에 대해 자유롭게 학습을 진행합니다. 학습 내용에 대해서는 본인 브랜치에서 WIKI 폴더(디렉토리)에 남기고 해당 내용을 매주 미팅 시간에 공유합니다. 협업 중 conflict가 발생할 경우 함께 원인을 분석하고 해결 방안을 찾은 뒤 해결 내용을 기록합니다.

    협업 도구 학습
    주차 학습 내용 실습 진행
    8월 5주차 branch, PullRequest, push & pull branch 생성 및 PR 올리기 O
    9월 1주차 commit, PR convention convention에 맞춰 작업 기록 남기기 O
    9월 1주차 convention template 지정 template 지정 방법 이해 X
    9월 2주차 git flow, merge, conflict 이해 conflict 종류 이해 및 만들어보기 X
    9월 2주차 github Issue, github Wiki 이해 wiki 디렉토리 내용 github wiki로 이동 X
    9월 3주차 X
    9월 3주차 X
    9월 4주차 X
    9월 4주차 X
    9월 5주차 X
    9월 5주차 X

2. 스터디 규칙 (Rules)

상세한 내용에 대해서는 WIKI를 참조합니다.

2-1. 참여 방법

  1. notification에서 contributors 추가 요청 메시지를 수락합니다.

  2. Algorithm_Seoul_01 레포지토리의 URL을 복사한 뒤 본인의 컴퓨터에 clone 합니다.

    • 저장소 clone 명령어 : git clone [복사한 URL]
  3. 로컬 저장소에서 본인의 브랜치를 생성한 후 해당 브랜치로 이동합니다.

    • 브랜치 생성 명령어 : git branch [본인 이름의 브랜치명]

    • 브랜치 이동 명령어 : git checkout [본인 이름의 브랜치명]

    • 이미 브랜치를 생성했는데 checkout 시 해당 브랜치를 찾을 수 없다고 하면 git pull [원격 저장소 별칭] [브랜치명]을 통해 원격 저장소에서 로컬 저장소로 해당 브랜치를 받아오는 작업을 해야 합니다.

  4. 과제에 대한 작업을 완료한 뒤 commit convention에 맞춰 commit을 남긴 뒤 원격 저장소로 push 합니다.

    • 작업한 파일에 대한 스테이징 추가 명령어 : git add [파일명]

    • 커밋 명령어 : git commit -m "[커밋 컨벤션에 맞춰 커밋 메시지 작성]"

    • 원격 저장소 push 명령어 : git push [원격 저장소 별칭] [본인 이름의 브랜치명]

    • main branch에서는 특별한 상황이 아닐 경우 작업하는 것을 금지하며, 문서 작업의 경우 documents 브랜치를 이용할 수 있습니다.

  5. Github 원격 저장소 내 Pull & Request에 들어가 Compare & pull request 버튼 눌러 Pull Request을 올립니다.

    • Pull Request convention에 맞춰 Pull Request를 올립니다.

    • 올린 뒤 conflict가 발생했다는 문구가 뜨는 등의 문제가 발생할 경우 mattermost를 통해 팀원들에게 상황을 공유한 뒤 함께 해결합니다.

  6. 회의가 끝난 이후, merge가 발생한 이후에는 레포지토리 관리자는 팀원들에게 pull 요청 공지를 내리며, 팀원들은 본인들의 로컬 저장소의 개인 브랜치에서 main branch pull을 진행합니다.

    • pull 명령어 : git pull [원격 저장소 별칭] main

    • pull 작업은 개인 작업 직전에 한번씩 하는 것을 권장합니다.

2-2. 커밋 메시지 convention


  • 커밋 내용을 영어로 작성할 경우 첫 글자는 대문자로 작성합니다.

  • 커밋 내용은 명확하고 간결하게 작성합니다 (명시된 커밋 내용에 속하지 않는 내용일 경우 mm이나 github issue를 통해서 상황 공유 및 커밋 내용 형식을 추가합니다)

  • 커밋 내용은 영어의 경우 명령문, 한국어의 경우 서술식이 아닌 명사 형태로 작성합니다.

  • 커밋 메시지는 파일에 대한 작업 단위(의사코드 작성, 코드 1 작성, 코드 2 작성, 코드 개선, 타인 코드 레퍼런스 업로드 등)로 업로드합니다.

    • 기본 형태 : [출처 문제번호 문제이름] 커밋내용

    • 커밋 내용 (한국어 또는 영어로 택 1 해서 작성할 것)

      • 문제 분석 및 의사코드 작성

        Analyze problem and write pseudocode

      • 코드 작성 (실행 시간 / 메모리)

        Write code (36ms / 36,425KB)

      • 코드 개선 (실행 시간 / 메모리)

        Refactor code (실행 시간 / 메모리)

      • 타인 코드 업로드

        Share impressive code from others

  • 매일 푼 문제 중 코드 리뷰를 받고 싶은 문제의 경우 커밋 메시지 가장 앞에 Daily라는 키워드를 붙여주시길 바랍니다.

    예 > [Daily / BOJ 2678 설탕_배달] 코드 작성 (36ms, 36,435KB)


2-3. 풀 리퀘스트 convention


## [요일] '[문제 이름]' 풀이 요약

> 에 : 화요일 '설탕배달' 풀이 요약

* 문제 푼 날짜 : [2024년00월00일]

* 시간 : [실행 시간]ms

* 메모리 : [메모리]KB

* 코드 길이 : [코드 길이]B

* 시도 횟수 : [시도 횟수]* (선택) [문제 풀이 기록 노션 URL](URL작성)

> 제출 시 반드시 공유하기 결과 링크로 제출, 안그러면 접근 권한 불가

## 후기

* 본인이 생각한 이 문제의 알고리즘

* 본인이 생각한 이 문제의 주요 아이디어

* 문제를 풀다가 한 실수

* 문제를 풀면서 새롭게 배운 점

> 이밖에 의사 코드, 리팩토링하면서 읽은 타인 코드 등 공유할만한 사항등을 자유롭게 추가해주셔도 됩니다

## (선택) [데일리] 문제 리스트

> 일간 문제 풀이 중 원격 저장소에 업로드해서 코드 리뷰를 받고 싶은 문제의 경우 리스트업해주세요.

> 예 : [0829 풀이] BOJ 2783 설탕배달

3. 월별 활동 기록 (Monthly Records)

8 ~ 9월 활동

주차 문제 알고리즘 푼 사람
8월 5주차 [BOJ] 2839 설탕 배달 수학, DP, 그리디 김희수 김민지 이아영 송경민
9월 1주차 [BOJ] 스택 수열 자료구조, 스택 김희수 김민지 이아영 송경민
9월 1주차 [BOJ] 퇴사 재귀, 브루트포스, DP

10월 활동

주차 문제 알고리즘 푼 사람

CF. 학습 참고 자료 (References)

알고리즘, 자료구조 이론 학습 & 면접 질문 리스트

  • SSAFY 수업 자료

자료구조 개괄 이미지

문제 풀이 리스트

2021년 출제 유형 리스트 - 출처 : 동빈나 유튜브

About

12기 서울 1반 알고리즘 스터디

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages