2014 년 12 월이며 2015 년이 거의 시작되었습니다. 그러나 모든 사람이 이것을 깨달은 것은 아닙니다.
그러나 PPCG의 사람들은 구출에 온다!
입력
당신의 프로그램은 12 월에있는 날들이 11 월과 1 월의 날들과 다르게 보이는 벽과 같은 그리드를받습니다. 매주 일요일로 시작하여 토요일로 끝납니다.
월 내의 일수는로 표시됩니다 #
. 월이 아닌 날은 (공백, ASCII 코드 32)로 표시됩니다. 매주 별도의 줄에 있습니다. 줄은 개행 문자 (
\n
) 로 구분됩니다 . 프로그램은 입력이 끝날 때 줄 바꿈을 생략하거나 포함해야 할 수 있습니다.
예를 들어, 이것은 2009 년 12 월의 입력입니다.
#####
#######
#######
#######
#####
달력은 항상 12 월입니다.
직무
입력이 주어지면 달력과 연관된 연도를 찾아야합니다. 달력이 일치하는 연도는 여러 해이므로 2015 년에 가장 가까운 연도 (2015 년 이전)를 반환해야합니다 (2015 년 제외).
귀하의 프로그램은 2015 년에 가까운 다른 연도 (2015 년 이전)와 동일한 12 월의 달력 레이아웃을 갖는 것을 제외하고 <2015 년의 모든 연도에 대해 올바른 결과를 산출해야합니다.
연도가 <2014 인 경우 연도와 2014의 차이도 계산해야합니다. 예를 들어 2012 년의 경우 차이는 2
입니다.
산출
프로그램의 출력은 다음과 같아야합니다.
- 텍스트 :
Your calendar is for <year>.
(참고 : 원래 '캘린더'로 철자가되었으므로 해당 철자를 받아들입니다.) - 개행 (
\n
또는\r\n
)이 뒤 따릅니다 . - 뒤에 텍스트 :
It's almost 2015.
- 연도가 <2014 인 경우 다음에 텍스트가 와야합니다.
You're <difference> years behind.
이것은 별도의 줄에 있어야합니다. - 개행 (
\n
또는\r\n
)이 뒤 따릅니다 . - 뒤에 텍스트 :
Go buy a new calendar!
- 선택적으로 개행 (
\n
또는\r\n
) 이옵니다 .
규칙
- 캘린더를 명령 줄 인수 (예 :)로 수신할지
yourprogram.exe <calendar>
또는 사용자 입력 프롬프트 로 수신할지 선택할 수 있습니다 . - 프로그램이 유효하지 않은 입력을받지 못한다고 가정 할 수 있습니다. 유효하지 않은 입력은 연도가없는 캘린더 레이아웃을 포함합니다.
- 가장 짧은 코드 (모든 언어로 된 바이트)가 이깁니다.
비표준 명령 줄 인수 (일반적으로 스크립트를 실행하는 데 필요하지 않은 인수)는 총 문자 수에 포함됩니다.
프로그램 이하지 말아야 할 것 :
- 외부 자원에 의존하십시오.
- 특정 파일 이름이 있어야합니다.
- 필요한 출력 이외의 것을 출력하십시오.
- 실행하는 데 시간이 오래 걸립니다. 일반 가정 사용자의 컴퓨터에서 1 분 이상 프로그램을 실행하면 유효하지 않습니다.
- 이 과제를 게시하기 전에 공개적으로 사용 가능한 컴파일러 / 인터프리터가없는 프로그래밍 언어로 프로그램을 작성해서는 안됩니다.
예
입력:
#####
#######
#######
#######
#####
산출:
Your calendar is for 2009.
It's almost 2015.
You're 5 years behind.
Go buy a new calendar!
입력:
######
#######
#######
#######
####
산출:
Your calendar is for 2014.
It's almost 2015.
Go buy a new calendar!
입력:
#
#######
#######
#######
#######
##
산출:
Your calendar is for 2012.
It's almost 2015.
You're 2 years behind.
Go buy a new calendar!