이것은 내 머리입니다.
\ /-- -|
/ -\ | | |
\ \ \ \ |
--\ | \ | |
/ |--| / / |
/|- //--| / |
| | || //\ |
| \ /| // \ |
정확히 8 개의 머리카락으로 구성되어 있습니다. 머리가 너무 깁니다. 각 가닥을 내가 지정한 길이로 자르십시오.
입력
이 섹션의 주요 매력은 실제 머리카락입니다. 여기의 그래픽, 색상으로 구분 표현은 애니메이션과 함께, 게으른를 들어, :
그리고 머리카락 세트가 무엇인지에 대한 전체 사양 은 다음과 같습니다.
- 우리가 호출 개별 머리카락 가닥 의 밖으로 될 것이다
/
,\
,|
, 그리고-
이제부터라고, ASCII 문자 원자 . - 전체 헤드 듣고의 (결합 가닥 모두)입니다
c
의한 열r
행,c
≥ 1r
≥ 2. - 각 가닥은 ...
- 머리의 마지막 줄에서 시작하십시오 (행
r
-1). - 길이
l
가l
≥ 2 인 곳
- 머리의 마지막 줄에서 시작하십시오 (행
- 가닥은 다음 방법으로 구문 분석 될 수 있습니다.
- 스트랜드의 바닥에서 시작하십시오. 이것은있을 것입니다
/
,|
또는\
우리가 호출 원자, 루트를 . (가닥은 왼쪽에서 오른쪽으로 구문 분석되며 루트 순서로 정렬됩니다.) - 뿌리를 가리키는 원자를 찾으십시오.
|
위아래로 원자를 가리 킵니다.-
원자 포인트는 왼쪽과 오른쪽 (만 뿌리는 맨 아래 행에있을 수 있기 때문에 루트를 가리 수 없다)./
원자 포인트 다운 좌 상향 우측, 및\
원자 반대한다.- 항상 루트 원자를 가리키는 정확히 하나의 원자가 있습니다.
- 이 원자를 가리키고이 원자 아래에 있지 않은 미사용 원자 (아직 가닥의 일부가 아닌 원자)를 찾으십시오 (모발은 아래쪽으로 자라지 않지만 옆으로는 괜찮습니다).
- 0이 없으면 스트랜드의 끝에 도달 한 것입니다!
- 하나 있으면 가닥의 다음 원자입니다. 이 원자로 3 단계를 반복하십시오. (이 원자는 이제 가닥의 일부이기 때문에 3 단계의 목적으로 "사용됨"으로 표시됩니다.)
- 머리의 어느 시점에도 여러 개의 미사용 원자가 존재하지 않습니다 .
- 스트랜드의 바닥에서 시작하십시오. 이것은있을 것입니다
입력 형식이 될 것입니다 :
- 머리카락. 그대로 입력 (리터럴 개행 문자가 포함 된 여러 줄 입력)이거나 개행 문자 대신에 선택한 구분 기호를 사용하여 입력 할 수 있습니다. 머리는 항상 사각형입니다. 즉, 후행 공백이 필요에 따라 추가됩니다 (오른쪽의 이상한 직선 머리카락은 혼동을 피하기 위해 추가 후행 공백을 제거하는 것입니다).
- 절단 할 머리카락의 양을 지정하는 숫자 ≥ 1 이에 대해서는 다음 섹션에서 자세히 설명합니다.
함수에 대한 입력을 수락하고 STDIN / STDOUT 등을 사용할 수 있습니다 ( 합리적인 모든 것 ).
산출
출력은 이발이 적용된 머리카락입니다. 이발을 제공하려면 머리카락의 끝점에서 시작하여 뿌리를 향하여 지정된 양 (항상 1 이상)으로 각 머리카락 가닥의 길이를 줄이십시오. 그러나 항상 뿌리를 그대로 두십시오!
다음은 간단한 예입니다. 헤드 입력이
\
/
|
|
의 두 번째 입력을 사용 2
하면 스트랜드에서 두 개의 원자를 자르고
|
|
그리고의 입력으로 42
출력은
|
헤드 전후의 공백은 완전히 관련이 없습니다. 줄 바꿈을 추가로 줄이거 나 패딩을 더 추가 할 수 있습니다. 머리가 손상되지 않는 한 중요하지 않습니다. (후행 공백으로도 원하는 것을 할 수 있습니다.)
테스트 사례
모든 테스트 사례에 대해이 게시물의 맨 처음에 제시된 예제가 사용됩니다.
이발 길이 = 1 :
/- |
/ \ | |
\ \ \ \ |
--\ | \ | |
/ |-- / / |
|- //--| / |
| | || // |
| \ /| // \ |
3의 길이 :
|
\ |
--\ | \ |
/ |-- / / |
|- // | / |
| || // |
| \ /| // \ |
7의 길이
|- / |
| | / |
| \ /| // \ |
1337의 길이 :
| \ /| // \ |
채점
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이길 것입니다!
-
세 번째 가닥에서 왼쪽에서 |
네 번째 가닥
-
아니라 어떤 이를 가리 킵니다 . 예를 들어,는 첫 번째 스트랜드에서를 |
가리 키지 않지만을 가리 킵니다 . (예, 혼란 스럽습니다. 나 자신도 혼란스러워 GIF를 여러 번 다시 실행해야했습니다!) 이것을 이해하는 더 쉬운 방법은 두 번째 가닥의 상단을 보는 것입니다. /
/
-
결합되어야한다는 것 입니다.