트랙
/
SQLite
SQLite
/
연습 문제
/
신속한 일정 관리
신속한 일정 관리

신속한 일정 관리

보통

소개

이번 주에는 부서 기획 회의에서 메모할 차례예요. 이 회의에서 상사는 진행 중인 모든 작업 항목의 납품 날짜를 정해요. 짜증나게도, 상사는 실제 납품 날짜를 명시하는 대신, 축약된 형식으로 설명만 할 뿐이에요. 동료들 대부분이 이런 사내 용어에 익숙하지 않으니, 이 납품 날짜 설명들을 실제 납품 날짜로 바꿔야 해요.

지침

이번 과제는 회의가 시작된 시각을 기준으로 배송 날짜 설명을 실제 배송 날짜로 변환하는 거예요.

배송 날짜 설명에는 두 가지 유형이 있어요:

  1. 고정: 미리 정의된 단어 집합.
  2. 가변: 가변적인 부분이 있지만 미리 정의된 패턴을 따르는 단어.

고정 배송 날짜 설명

고정 배송 날짜 설명은 세 가지가 있어요:

  • "NOW"
  • "ASAP" (가능한 한 빨리)
  • "EOW" (주 끝)

다음 표는 각 설명을 어떻게 변환하는지 보여줘요:

설명 회의 시작 배송 날짜
"NOW" - 회의가 시작되고 두 시간 후
"ASAP" 13:00 이전 오늘 17:00
"ASAP" 13:00 이후 (13:00 포함) 내일 13:00
"EOW" 월요일, 화요일 또는 수요일 금요일 17:00
"EOW" 목요일 또는 금요일 일요일 20:00

가변 배송 날짜 설명

가변 배송 날짜 설명 패턴은 두 가지가 있어요:

  • "<N>M" (N번째 달)
  • "Q<N>" (N번째 분기)
설명 회의 시작 배송 날짜
"<N>M" N번째 달 이전 올해 N번째 달의 첫 근무일 8:00
"<N>M" N번째 달이거나 그 이후 내년 N번째 달의 첫 근무일 8:00
"Q<N>" N번째 분기이거나 그 이전 올해 N번째 분기의 마지막 근무일 8:00
"Q<N>" N번째 분기 이후 내년 N번째 분기의 마지막 근무일 8:00
Note

근무일은 월요일, 화요일, 수요일, 목요일, 금요일이에요.

1년은 네 개의 분기로 나뉘고, 각 분기에는 세 개의 달이 있어요:

  1. 1월/2월/3월
  2. 4월/5월/6월
  3. 7월/8월/9월
  4. 10월/11월/12월.
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
SQLite Exercism

신속한 일정 관리 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 SQLite 트랙을 연습 문제 81개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.