Skip to content

Latest commit

 

History

209 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SSAFY Algorithm Study

매주 정해진 알고리즘 문제를 함께 풀고, 서로의 접근 방식과 풀이 과정을 공유하며 문제 해결 능력을 키우는 스터디입니다.

단순히 정답 코드를 제출하는 것에 그치지 않고, 문제를 해결하기 위해 사용한 알고리즘과 사고 과정을 설명할 수 있는 것을 목표로 합니다.

문제 정리 노션 : 알잘딱골 SSAFY 알고리즘 스터디


스터디 운영 규칙

진행 방식

  • 매주 모든 팀원이 정해진 문제를 풉니다.
  • 모임 전까지 해당 주차의 문제 풀이 코드를 GitHub Repository에 제출합니다.
  • 매주 수요일 수업 종료 후 오프라인으로 모여 풀이를 공유합니다.
  • 각자 문제를 해결한 방법과 사용한 알고리즘을 설명합니다.
  • 서로 다른 풀이가 있다면 시간 복잡도, 공간 복잡도, 코드 가독성 등을 비교합니다.
  • 해결하지 못한 문제도 최종 풀이를 이해한 뒤 제출합니다.
  • 단순히 정답 코드를 복사하는 것이 아니라, 자신의 코드와 풀이 과정을 설명할 수 있는 상태를 목표로 합니다.

문제를 해결하지 못한 경우

문제를 자신의 힘으로 해결하지 못했다면 다른 사람의 풀이, 알고리즘 강의 및 블로그, 공식 문서, 생성형 AI 등을 참고할 수 있습니다.

도움을 받아 해결한 경우에는 코드 상단에 다음 내용을 간단히 기록합니다.

  1. 처음 생각한 해결 방법
  2. 직접 시도한 방법
  3. 막힌 부분
  4. 참고한 내용
  5. 참고 후 이해한 최종 해결 방법
/*
 * [풀이 도움 여부]
 * GPT의 도움을 받아 해결
 *
 * [나의 생각 과정]
 * - 처음 생각한 접근:
 * - 직접 시도한 방법:
 *
 * [막힌 부분]
 * -
 *
 * [참고한 내용]
 * -
 *
 * [최종적으로 이해한 해결 방법]
 * -
 */

복사한 코드를 그대로 제출하는 것이 아니라, 코드의 동작 원리를 이해하고 직접 설명할 수 있는 상태로 제출합니다.


오프라인 모임 진행

매주 모임은 다음 흐름으로 진행합니다.

  1. 해당 주차 문제의 해결 여부를 확인합니다.
  2. 문제별로 각자의 접근 방식을 공유합니다.
  3. 서로 다른 풀이 방법을 비교합니다.
  4. 해결하지 못했던 문제의 막힌 지점을 공유합니다.
  5. 더 좋은 풀이 또는 개선할 부분을 함께 정리합니다.
  6. 다음 주차 문제를 확인합니다.

발표자는 별도로 정하지 않고, 문제마다 서로의 풀이를 자유롭게 공유합니다.


Repository Convention

디렉터리 구조

각 주차 폴더 아래에 자신의 이름 또는 GitHub ID로 폴더를 생성합니다.

.
├── README.md
├── week01
│   ├── 이름1
│   │   ├── 문제풀이1.java
│   │   └── 문제풀이2.java
│   └── 이름2
├── week02
│   ├── 이름1
│   └── 이름2
└── ...

파일명 규칙

파일명은 다음 형식을 사용합니다.

사이트_문제번호_문제이름.확장자

예시:

SWEA_1204_최빈수_구하기.java
BOJ_1260_DFS와_BFS.java

공백 대신 언더스코어(_)를 사용합니다.


Branch Convention

브랜치는 다음 형식으로 생성합니다.

이름/week-주차

예시:

seungeon/week-01
seungeon/week-02

한 주차의 문제 풀이가 끝나면 해당 브랜치를 원격 저장소에 Push하고 main 브랜치로 Pull Request를 생성합니다.

개인 브랜치
   ↓
Push
   ↓
Pull Request
   ↓
Review
   ↓
main

main 브랜치에는 직접 Push하지 않고 Pull Request를 통해 병합하는 것을 기본 원칙으로 합니다.


Commit Convention

태그 용도 예시
solve 문제 풀이 코드 제출 solve: SWEA 1204 최빈수 구하기 풀이
docs 주석 및 풀이 설명 추가 docs: 풀이 과정 정리
refactor 동작은 같지만 코드 구조 개선 refactor: 탐색 로직 개선
fix 오답 또는 코드 오류 수정 fix: 경계 조건 오류 수정
chore 폴더 구조 및 설정 변경 chore: 주차 폴더 생성

한 커밋에는 가능하면 하나의 문제 또는 하나의 변경 목적만 포함합니다.

solve: SWEA 1204 최빈수 구하기 풀이
solve: SWEA 1983 조교의 성적 매기기 풀이

Pull Request Convention

PR 제목

다음 형식을 사용합니다.

[주차] 이름 문제 풀이

예시:

[5주차] 최승언 문제 풀이

PR 본문

PR에는 최소한 다음 내용을 작성합니다.

## 풀이한 문제

- 문제 1
- 문제 2
- 문제 3

## 문제별 해결 과정

| 문제 | 해결 상태 | 참고 내용 |
| --- | --- | --- |
| 문제 1 | 자력 해결 | 없음 |
| 문제 2 | 힌트 참고 후 해결 | 참고한 내용 간단히 작성 |
| 문제 3 | 풀이 참고 후 재구현 | 참고한 내용 간단히 작성 |

## 공유하고 싶은 내용

- 구현하면서 어려웠던 부분
- 다른 사람과 비교해 보고 싶은 부분
- 더 좋은 풀이가 있는지 궁금한 부분

PR을 통해 다른 팀원의 코드를 확인하고, 필요한 경우 질문이나 개선 의견을 남깁니다.


코드 작성 규칙

  • 제출하는 코드는 정상적으로 실행되어야 합니다.
  • 문제의 입력 및 출력 형식을 준수합니다.
  • 불필요한 디버깅 출력은 제거합니다.
  • 변수와 메서드 이름은 역할을 이해할 수 있도록 작성합니다.
  • 다른 사람의 코드를 참고했다면 그대로 복사하지 않고 직접 이해한 뒤 작성합니다.
  • 도움을 받아 해결한 문제는 자신의 생각 과정과 참고 내용을 기록합니다.
  • 오프라인 모임에서 자신의 코드를 설명할 수 있어야 합니다.

코드 상단에는 필요에 따라 다음 정보를 작성할 수 있습니다.

/*
 * 문제: SWEA 5215 햄버거 다이어트
 * 메모리: 27,000 KB
 * 실행 시간: 150 ms
 * 알고리즘: 부분집합, 백트래킹
 */

스터디 목표

  • 문제에 적합한 알고리즘을 선택하는 능력을 기릅니다.
  • 자신의 풀이를 다른 사람에게 설명하는 능력을 기릅니다.
  • 다른 사람의 코드를 읽고 장단점을 파악합니다.
  • 해결하지 못한 문제도 포기하지 않고 끝까지 이해합니다.
  • 단순한 정답 제출이 아니라 문제 해결 과정을 기록하는 습관을 만듭니다.

모르는 문제는 도움을 받아도 괜찮습니다.
다만, 도움을 받은 과정을 기록하고 최종 풀이를 자신의 말로 설명할 수 있어야 합니다.


👥 스터디 멤버

최승언 곽정민 정다은 문하늘
@ChoiSeungeon @TUJungMin @0JDaEun @moonaneul

About

SSAFY Algorithm Study Repository

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages