043. 나이 계산기
Easy
바이브코딩
MCPDateCalculator
문제 설명
[문제]
생년월일을 기준으로 만 나이와 다음 생일까지 남은 일수를 계산하는 MCP 서버를 구현한다. 현재 시각에 의존하면 채점 결과가 날마다 달라지므로, 기준 날짜 today 를 인자로 받아 항상 같은 입력에 같은 결과가 나오도록(결정론적) 한다.
만 나이란 태어난 해부터 지난 햇수이되, 올해 생일이 아직 안 지났으면 1을 빼는 방식이다. 예를 들어 2024-01-01 기준으로 생일이 12-31 인 사람은 올해 생일이 아직 안 지났으므로 나이가 1살 덜 든다.
[구현할 함수]
- calculate_age(birthdate: str, today: str) -> int
today 기준 만 나이를 반환한다. birthdate, today 모두 "YYYY-MM-DD" 형식이다.
- days_until_birthday(birthdate: str, today: str) -> int
today 부터 다음 생일까지 남은 일수를 반환한다. today 가 바로 생일이면 0, 올해 생일이 이미 지났으면 내년 생일까지의 일수를 반환한다.
[입력·상태]
별도 상태는 없다. 날짜는 모두 "YYYY-MM-DD" 형식 문자열로 주어진다. today 인자 덕분에 현재 시각에 의존하지 않는다.
[제약]
- 날짜 형식은 "YYYY-MM-DD" 로 고정.
- 윤년(2월 29일 등)을 올바르게 다루어야 한다.
- 만 나이 계산 시 "올해 생일이 지났는가"를 월·일까지 비교한다.
[힌트]
날짜 차이 계산은 언어의 날짜 자료형을 사용하면 편하다 (Python datetime.date / C++ <chrono> 또는 직접 일수 계산 / Java java.time.LocalDate).
[예시]
calculate_age("1990-01-01", "2024-05-15") -> 34
days_until_birthday("1990-01-01", "2024-05-15") -> 231 # 5/15 부터 다음 해 1/1 까지 (2024는 윤년)
calculate_age("2000-12-31", "2024-01-01") -> 23 # 올해 생일(12/31) 아직 안 지남
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.