Skip to content

Commit a993b7c

Browse files
Gyuhyeok99claude
andcommitted
feat: 알고리즘 스터디 레포지토리 초기 설정
- 디렉토리 구조 생성 (weekly, personal) - README.md 작성 (스터디 규칙, 참여 방법) - PR 템플릿 추가 - 이슈 템플릿 추가 (주차별 문제) - GitHub Actions 워크플로우 추가 - PR 자동 라벨링 - 주차별 이슈 자동 생성 - 예시 파일 및 .gitignore 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 003cd84 commit a993b7c

File tree

9 files changed

+447
-0
lines changed

9 files changed

+447
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
name: 주차별 문제
3+
about: 이번 주 풀어야 할 알고리즘 문제 목록
4+
title: '[WeekXX] YYYY.MM.DD ~ YYYY.MM.DD 주차 문제'
5+
labels: 'weekly-challenge'
6+
assignees: ''
7+
---
8+
9+
## Week XX (YYYY.MM.DD ~ YYYY.MM.DD)
10+
11+
이번 주 공통 문제입니다! 💪
12+
13+
### 📝 문제 목록
14+
15+
#### 문제 1
16+
- **플랫폼**: 백준 / 프로그래머스 / 리트코드
17+
- **문제 번호**:
18+
- **문제 이름**:
19+
- **난이도**:
20+
- **링크**:
21+
- **분류**: (예: DP, 그리디, DFS/BFS 등)
22+
23+
#### 문제 2
24+
- **플랫폼**:
25+
- **문제 번호**:
26+
- **문제 이름**:
27+
- **난이도**:
28+
- **링크**:
29+
- **분류**:
30+
31+
#### 문제 3
32+
- **플랫폼**:
33+
- **문제 번호**:
34+
- **문제 이름**:
35+
- **난이도**:
36+
- **링크**:
37+
- **분류**:
38+
39+
---
40+
41+
### ✅ 진행 상황
42+
43+
- [ ] @gyuhyeok99
44+
- [ ] @member2
45+
- [ ] @member3
46+
47+
---
48+
49+
### 💡 참고사항
50+
51+
문제 풀이는 `weekly/weekXX/` 디렉토리에 업로드해주세요!
52+
53+
```bash
54+
weekly/weekXX/
55+
├── BOJ_1234_문제명/
56+
│ ├── gyuhyeok99.py
57+
│ └── member2.java
58+
└── PGS_5678_문제명/
59+
└── member3.cpp
60+
```

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## 문제 정보
2+
3+
- **플랫폼**: (예: 백준, 프로그래머스, 리트코드)
4+
- **문제 번호**:
5+
- **문제 이름**:
6+
- **문제 링크**:
7+
- **난이도**: (예: 실버 3, Level 2, Medium)
8+
9+
## 풀이 방법
10+
11+
간단히 어떤 방식으로 풀었는지 설명해주세요.
12+
13+
```
14+
예시:
15+
- 알고리즘: DFS/BFS, DP, 그리디 등
16+
- 시간 복잡도: O(n)
17+
- 공간 복잡도: O(n)
18+
```
19+
20+
## 체크리스트
21+
22+
- [ ] 코드가 정상적으로 실행되나요?
23+
- [ ] 커밋 메시지가 컨벤션을 따르나요?
24+
- [ ] 파일명이 올바른가요? (`{닉네임}.{확장자}`)
25+
26+
## 추가 코멘트
27+
28+
(선택사항) 추가로 공유하고 싶은 내용이 있다면 작성해주세요.

.github/workflows/auto-label.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Auto Label PR
2+
3+
on:
4+
pull_request:
5+
types: [opened, edited]
6+
7+
jobs:
8+
label:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
pull-requests: write
12+
contents: read
13+
14+
steps:
15+
- name: Add labels based on PR title
16+
uses: actions/github-script@v7
17+
with:
18+
script: |
19+
const title = context.payload.pull_request.title;
20+
const labels = [];
21+
22+
// 주차별 문제인지 확인
23+
if (title.includes('[Week')) {
24+
labels.push('weekly-challenge');
25+
}
26+
27+
// 개인 문제인지 확인
28+
if (title.includes('[Personal]')) {
29+
labels.push('personal');
30+
}
31+
32+
// 플랫폼별 라벨
33+
if (title.includes('BOJ')) {
34+
labels.push('백준');
35+
}
36+
if (title.includes('PGS')) {
37+
labels.push('프로그래머스');
38+
}
39+
if (title.includes('LTC') || title.includes('LeetCode')) {
40+
labels.push('리트코드');
41+
}
42+
43+
// 라벨 추가
44+
if (labels.length > 0) {
45+
await github.rest.issues.addLabels({
46+
owner: context.repo.owner,
47+
repo: context.repo.repo,
48+
issue_number: context.payload.pull_request.number,
49+
labels: labels
50+
});
51+
}
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: Create Weekly Issue
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
week_number:
7+
description: '주차 번호 (예: 01, 02, 03)'
8+
required: true
9+
type: string
10+
start_date:
11+
description: '시작 날짜 (YYYY.MM.DD)'
12+
required: true
13+
type: string
14+
end_date:
15+
description: '종료 날짜 (YYYY.MM.DD)'
16+
required: true
17+
type: string
18+
19+
jobs:
20+
create-issue:
21+
runs-on: ubuntu-latest
22+
permissions:
23+
issues: write
24+
25+
steps:
26+
- name: Create weekly issue
27+
uses: actions/github-script@v7
28+
with:
29+
script: |
30+
const weekNumber = '${{ inputs.week_number }}';
31+
const startDate = '${{ inputs.start_date }}';
32+
const endDate = '${{ inputs.end_date }}';
33+
34+
const issueBody = `## Week ${weekNumber} (${startDate} ~ ${endDate})
35+
36+
이번 주 공통 문제입니다! 💪
37+
38+
### 📝 문제 목록
39+
40+
#### 문제 1
41+
- **플랫폼**: 백준 / 프로그래머스 / 리트코드
42+
- **문제 번호**:
43+
- **문제 이름**:
44+
- **난이도**:
45+
- **링크**:
46+
- **분류**: (예: DP, 그리디, DFS/BFS 등)
47+
48+
#### 문제 2
49+
- **플랫폼**:
50+
- **문제 번호**:
51+
- **문제 이름**:
52+
- **난이도**:
53+
- **링크**:
54+
- **분류**:
55+
56+
#### 문제 3
57+
- **플랫폼**:
58+
- **문제 번호**:
59+
- **문제 이름**:
60+
- **난이도**:
61+
- **링크**:
62+
- **분류**:
63+
64+
---
65+
66+
### ✅ 진행 상황
67+
68+
- [ ] @gyuhyeok99
69+
- [ ] @member2
70+
- [ ] @member3
71+
72+
---
73+
74+
### 💡 참고사항
75+
76+
문제 풀이는 \`weekly/week${weekNumber}/\` 디렉토리에 업로드해주세요!
77+
78+
\`\`\`bash
79+
weekly/week${weekNumber}/
80+
├── BOJ_1234_문제명/
81+
│ ├── gyuhyeok99.py
82+
│ └── member2.java
83+
└── PGS_5678_문제명/
84+
└── member3.cpp
85+
\`\`\`
86+
`;
87+
88+
await github.rest.issues.create({
89+
owner: context.repo.owner,
90+
repo: context.repo.repo,
91+
title: `[Week${weekNumber}] ${startDate} ~ ${endDate} 주차 문제`,
92+
body: issueBody,
93+
labels: ['weekly-challenge']
94+
});

.gitignore

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# IDE
2+
.vscode/
3+
.idea/
4+
*.swp
5+
*.swo
6+
*~
7+
8+
# Python
9+
__pycache__/
10+
*.py[cod]
11+
*$py.class
12+
*.so
13+
.Python
14+
venv/
15+
env/
16+
ENV/
17+
18+
# Java
19+
*.class
20+
*.jar
21+
*.war
22+
target/
23+
24+
# C/C++
25+
*.o
26+
*.exe
27+
*.out
28+
a.out
29+
30+
# Mac
31+
.DS_Store
32+
33+
# Windows
34+
Thumbs.db
35+
desktop.ini
36+
37+
# 개인 메모
38+
notes.txt
39+
memo.md

README.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,104 @@
11
# solid-connect-algorithm
2+
3+
Solid Connection 팀의 알고리즘 스터디 저장소입니다.
4+
5+
## 스터디 방식
6+
7+
### 주차별 공통 문제
8+
- 매주 **3개의 공통 문제**를 풀고 인증합니다
9+
- 문제는 GitHub Issue로 관리됩니다
10+
- `weekly/weekXX/` 디렉토리에 각자의 풀이를 올립니다
11+
12+
### 개인 자유 문제
13+
- 추가로 개인이 푼 문제는 `personal/{닉네임}/` 에 자유롭게 업로드합니다
14+
- 플랫폼별로 폴더를 나눠서 관리합니다 (BOJ, Programmers, LeetCode 등)
15+
16+
## 디렉토리 구조
17+
18+
```
19+
solid-connect-algorithm/
20+
├── weekly/ # 주차별 공통 문제
21+
│ ├── week01/
22+
│ │ ├── README.md # 이번 주 문제 목록
23+
│ │ ├── BOJ_1234_문제명/
24+
│ │ │ ├── gyuhyeok99.py
25+
│ │ │ └── member2.java
26+
│ │ └── PGS_12345_문제명/
27+
│ └── week02/
28+
└── personal/ # 개인별 자유 문제
29+
├── gyuhyeok99/
30+
│ ├── BOJ/
31+
│ ├── Programmers/
32+
│ └── LeetCode/
33+
└── member2/
34+
```
35+
36+
## 참여 방법
37+
38+
### 1. 주차별 공통 문제 풀이
39+
40+
1. 해당 주차의 Issue를 확인합니다
41+
2. `weekly/weekXX/문제폴더/` 안에 `{본인닉네임}.{확장자}` 파일로 풀이를 작성합니다
42+
3. 커밋 후 Push 합니다
43+
44+
```bash
45+
# 예시
46+
git add .
47+
git commit -m "[Week01] BOJ 1234: 두 수의 합"
48+
git push origin main
49+
```
50+
51+
### 2. 개인 자유 문제 풀이
52+
53+
1. `personal/{닉네임}/{플랫폼}/` 에 파일을 작성합니다
54+
2. 커밋 후 Push 합니다
55+
56+
```bash
57+
git add .
58+
git commit -m "[Personal] BOJ 5678: 문제이름"
59+
git push origin main
60+
```
61+
62+
## 커밋 컨벤션
63+
64+
```
65+
[Week01] 플랫폼 문제번호: 문제명
66+
[Personal] 플랫폼 문제번호: 문제명
67+
68+
# 예시
69+
[Week01] BOJ 1234: 두 수의 합
70+
[Week02] PGS 12345: 타겟 넘버
71+
[Personal] LeetCode 1: Two Sum
72+
```
73+
74+
## 플랫폼 약어
75+
76+
- `BOJ`: 백준 (Baekjoon Online Judge)
77+
- `PGS`: 프로그래머스 (Programmers)
78+
- `LTC`: 리트코드 (LeetCode)
79+
- `CFS`: 코드포스 (Codeforces)
80+
- `SWEA`: SW Expert Academy
81+
82+
## 스터디원
83+
84+
| 이름 | GitHub |
85+
|------|--------|
86+
| 황규혁 | [@Gyuhyeok99](https://github.com/Gyuhyeok99) |
87+
| 멤버2 | [@member2](https://github.com/member2) |
88+
| 멤버3 | [@member3](https://github.com/member3) |
89+
90+
## 진행 현황
91+
92+
### Week 01 (2026.01.01 ~ 2026.01.07)
93+
94+
| 문제 | gyuhyeok99 | member2 | member3 |
95+
|------|:----------:|:-------:|:-------:|
96+
| [BOJ 0000: 예시문제](링크) ||||
97+
| [PGS 0000: 문제2](링크) ||||
98+
| [BOJ 0000: 문제3](링크) ||||
99+
100+
> ✅: 완료 / ⬜: 미완료
101+
102+
---
103+
104+
**Happy Coding!** 🚀

0 commit comments

Comments
 (0)