feat: 한지승 지각 가능성 대비 제약 추가

- 한지승 4명팀 배치 금지 (지각 시 3명 방지)
- 한지승 팀에 다른 시니어 ≥1 필수 (지각 시 시니어 0 방지)
- 출력에  마크 추가

결과: 한지승 → 팀5 (5명), 팀5 다른 시니어 김병훈 동행

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
th-kim0823
2026-04-25 19:20:26 +09:00
parent aa427d6670
commit 1db7ad397d
2 changed files with 47 additions and 31 deletions

View File

@@ -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()

View File

@@ -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"
}