매달 파트너는 가장 친한 친구와 만나요. 둘 다 일정이 아주 바빠서 적당한 날짜를 잡기가 쉽지 않죠! 파트너는 나도 일정이 바쁜 걸 알기 때문에, 만날 만한 날짜를 항상 나와 다시 확인해요:
이번 달 통화에서 파트너가 이렇게 물었어요:
어리둥절해진 나는 "teenth" 날이 뭔지 물어봐요. 파트너는 스스로 만들어 낸 개념인 teenth 날은 한 달 중 '-teenth'로 끝나는 날을 가리킨다고 설명해요:
요일도 일곱 개이기 때문에, 각 요일마다 매달 정확히 하나씩 teenth 날이 있다는 게 보장돼요.
이제 teenth 날의 개념을 이해했으니, 달력을 확인해요. teenth 목요일에는 아무 일정도 없어서, 기쁜 마음으로 파트너와 날짜를 확정해요.
월, 연도, 요일, 주가 주어졌을 때 모임의 정확한 날짜를 찾는 것이 과제예요.
고려해야 할 주 값은 다섯 가지예요: first, second, third, fourth, last, teenth.
예를 들어, 2018년 1월의 첫 번째 월요일에 열리는 모임의 날짜를 찾으라는 문제가 나올 수 있어요 (2018년 1월 1일).
마찬가지로 다음과 같은 날짜를 찾으라는 문제가 나올 수도 있어요:
teenth는 한 달에서 '-teenth'로 끝나는 7일을 가리켜요. 13일, 14일, 15일, 16일, 17일, 18일, 19일이 여기에 해당해요.
1953년 8월의 teenth 토요일을 찾으라고 하면 달력을 확인해요:
August 1953
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
이 달력에서 teenth 토요일이 1953년 8월 15일이라는 것을 알 수 있어요.
이 연습 문제를 완료하려면 meetupDay 함수를 구현해야 해요.
meetupDay의 타입 시그니처는 이미 준비되어 있지만, 함수를 정의하는 것은 직접 해야 해요.
Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.