From 1db7ad397d661dbb8cb07df02e69ccc4bf329577 Mon Sep 17 00:00:00 2001
From: th-kim0823
Date: Sat, 25 Apr 2026 19:20:26 +0900
Subject: [PATCH] =?UTF-8?q?feat:=20=ED=95=9C=EC=A7=80=EC=8A=B9=20=EC=A7=80?=
=?UTF-8?q?=EA=B0=81=20=EA=B0=80=EB=8A=A5=EC=84=B1=20=EB=8C=80=EB=B9=84=20?=
=?UTF-8?q?=EC=A0=9C=EC=95=BD=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 한지승 4명팀 배치 금지 (지각 시 3명 방지)
- 한지승 팀에 다른 시니어 ≥1 필수 (지각 시 시니어 0 방지)
- 출력에 ⏰ 마크 추가
결과: 한지승 → 팀5 (5명), 팀5 다른 시니어 김병훈 동행
Co-Authored-By: Claude Opus 4.7 (1M context)
---
assign_teams.py | 20 ++++++++++++++--
participants.json | 58 +++++++++++++++++++++++------------------------
2 files changed, 47 insertions(+), 31 deletions(-)
diff --git a/assign_teams.py b/assign_teams.py
index 90db8b1..262d519 100644
--- a/assign_teams.py
+++ b/assign_teams.py
@@ -139,6 +139,18 @@ def validate(teams):
if max(senior_per_team) - min(senior_per_team) > 1:
return False, f"시니어 분포 불균등: {senior_per_team}"
+ # 한지승(지각 가능) 특수 제약
+ # 1. 4명 팀에 배치 금지 (지각 시 3명 → 너무 적음)
+ # 2. 한지승 팀에 다른 시니어 ≥1명 (지각 시 시니어 0 방지)
+ for team in teams:
+ names = [n for n, _ in team]
+ if "한지승" in names:
+ if len(team) < 5:
+ return False, "한지승 4명팀 배치 (지각 시 3명)"
+ other_seniors = sum(1 for n in names if n in SENIORS and n != "한지승")
+ if other_seniors < 1:
+ return False, "한지승 팀에 다른 시니어 0명 (지각 시 시니어 0)"
+
return True, "OK"
@@ -186,10 +198,14 @@ def main():
)
n_senior = sum(1 for n, _ in team if n in SENIORS)
size = len(team)
- print(f"## {team_name} ({size}명, 시니어 {n_senior}, {dept_summary})")
+ late_note = " ⏰한지승 지각시 -1" if any(n == "한지승" for n, _ in team) else ""
+ print(f"## {team_name} ({size}명, 시니어 {n_senior}, {dept_summary}){late_note}")
for name, dept in team:
tag = " ⭐시니어" if name in SENIORS else ""
- tag += " 🌱최주니어" if name == "김재현" else ""
+ if name == "김재현":
+ tag += " 🌱최주니어"
+ if name == "한지승":
+ tag += " ⏰지각가능"
print(f" - {name} ({dept}){tag}")
mapping[name] = team_name
print()
diff --git a/participants.json b/participants.json
index 730d121..660e4f2 100644
--- a/participants.json
+++ b/participants.json
@@ -1,36 +1,36 @@
{
- "이성재": "팀1",
- "김민섭": "팀1",
- "이준석": "팀1",
- "박영훈": "팀1",
- "박재호": "팀1",
- "조민정": "팀2",
- "이준형": "팀2",
- "김재현": "팀2",
- "길주현": "팀2",
- "김병훈": "팀2",
- "유준희": "팀3",
- "유용혁": "팀3",
- "오근현": "팀3",
+ "김호승": "팀1",
+ "유준희": "팀1",
+ "김영관": "팀1",
+ "장다현": "팀1",
+ "강승형": "팀1",
+ "서한배": "팀2",
+ "김민섭": "팀2",
+ "유용혁": "팀2",
+ "박영훈": "팀2",
+ "박재호": "팀2",
+ "이성재": "팀3",
+ "이재광": "팀3",
+ "이준석": "팀3",
"정채윤": "팀3",
- "강승형": "팀3",
- "이정태": "팀4",
- "서한배": "팀4",
- "김영관": "팀4",
+ "변수민": "팀3",
+ "심성환": "팀4",
+ "유지원": "팀4",
+ "오근현": "팀4",
"장혁진": "팀4",
"손현준": "팀4",
- "유지원": "팀5",
"정현준": "팀5",
- "최호진": "팀5",
- "서희": "팀5",
- "변수민": "팀5",
- "이재광": "팀6",
- "심성환": "팀6",
- "전효준": "팀6",
- "장다현": "팀6",
- "김동국": "팀6",
- "김호승": "팀7",
- "김정명": "팀7",
+ "조민정": "팀5",
+ "김재현": "팀5",
+ "김병훈": "팀5",
+ "한지승": "팀5",
+ "이정태": "팀6",
+ "최호진": "팀6",
+ "김정명": "팀6",
+ "길주현": "팀6",
+ "서희": "팀6",
+ "이준형": "팀7",
+ "전효준": "팀7",
"이지환": "팀7",
- "한지승": "팀7"
+ "김동국": "팀7"
}
\ No newline at end of file