소개
시시 푸스는 최근 직장에서 어려움을 겪고있었습니다. 그는 결코 아무것도하지 않는 것처럼 보이며이 문제에 대한 해결책을 찾고 싶습니다.
그의 현재 고용은 언덕 위로 바위를 굴려야합니다. 그는 일반적으로 자신의 일을 잘하지만 언덕 꼭대기에 가까워 질 때마다 다시 굴러 떨어집니다.
그는 자신의 일에 정말로 좌절하고 있으며 컴퓨터가 언덕을 굴러 내리는 바위를 시뮬레이트함으로써 과학적으로 문제를 해결하려고합니다.
Sisyphus가 프로그래밍에 특히 좋지 않은 경우가 발생하므로 그를 도울 수 있습니까?
도전
이 어리석은 소개 후에는 사업을 시작하겠습니다. 프로그램은 다음과 유사한 언덕과 바위의 그림을 받게됩니다.
#o
##
###
######
########
어디는 #
언덕의 일부를 나타내고 o
바위를 나타냅니다.
이제 rock 1 레이어를 아래로 이동시키는 프로그램을 구현해야합니다. 예를 들어, 위의 출력은 다음과 같아야합니다.
#
##o
###
######
########
가로로 균일 한 영역이 있으면 언덕이 가로로 굴러가므로 ...
o
########
... 그냥 돌을 옆으로 굴려 요.
o
########
수직 영역이 있으면 암석이 한 단계 아래로 떨어 지므로 ...
#o
#
#
#####
... 생산할 것이다 ...
#
#o
#
#####
또한 이미지 위의 한 줄에 이미지의 너비와 높이를 각각받습니다. 완성 된 샘플 입력은 다음과 같습니다.
10 5
#o
##
###
######
#########
(여기에서 공백은 공백입니다. 텍스트를 선택하고 무슨 뜻인지 확인하십시오.)
일부 세부 사항
- 프로그램을 실행할 때 바위가 이미 마지막 줄에 있으면 프로그램을 종료하거나 변경되지 않은 입력을 출력하도록 선택할 수 있습니다
- 언덕은 아래로만 내려갑니다
프로그램은 출력을 치수와 함께 입력과 정확히 동일하게 형식화해야하므로 프로그램의 출력을 자체로 파이프하면 다음 단계를 계산합니다.
항상 맨 아래로가는 방법이 있다고 가정 할 수 있으므로 경로가 "차단 된"입력은 정의되지 않은 동작을 유발할 수 있습니다
마지막 줄에 항상 공백이 있다고 가정 할 수 있습니다. 바위는 "휴식"해야하므로 프로그램을 몇 번 호출 한 후 항상 출력을 파이핑하면 마지막 줄의 바위로 끝나야합니다.
원하는 형식 (stdin, file, ...)으로 입력을 수락 할 수 있습니다. WHOLE 프로그램을 게시해야합니다 (따라서 사전 초기화 된 모든 변수는 코드로 계산됩니다).
줄은로 끝납니다
\n
.여기에 예제 입력을 얻을 수 있습니다 (공백을 올바르게 복사하십시오!)
이것은 code-golf 이므로 최소 바이트로 작업 제출이 이깁니다.
수상자는 2014 년 7 월 26 일에 선정됩니다. 그 후에 솔루션을 게시 할 수는 있지만 이길 수는 없습니다.
질문이 있으시면 의견에 알려주십시오.
행복한 골프!
#
초 밖에 없으므로 너비가 10이기 때문에 끝에 하나의 공간이 있습니다.이 경우 (몇 번의 반복 후) 공백이있는 곳에 바위가 놓입니다 (그래서 맨 아래). -오른쪽 코너).