직사각형의 표고 행렬이 주어지면 윤곽선을 그립니다.
태스크
두 요소 x
이며 y
동일한 경우 등고선 레벨에 floor(x/10) == floor(y/10)
있습니다. 예를 들어, 52
와 58
같은 윤곽선 수준에 있지만 58
및 64
수 없습니다.
등고선 그리기 동작은 다음과 같이 정의됩니다. 모든 요소 e
에 대해 다음과 같이 선택된 2 문자 문자열로 대체하십시오.
- 첫 번째 문자는
" "
아래의 요소가있는 경우e
와 같은 형상의 레벨에e
아래에 아무런 소자가 존재하지 않는 경우 나e
하고"_"
, 그렇지 - 두번째 글자는
" "
오른쪽에있는 요소가있는 경우e
와 같은 형상의 레벨에e
또는 오른쪽에 어떤 요소가없는e
하고"|"
, 그렇지
행 내의 요소가 함께 결합 된 다음 행이 개행과 함께 결합됩니다.
예
입력이 다음 [[5,20],[3,6]]
과 같이 시각화되어 있다고 가정 해 봅시다.
5 20
3 6
먼저을 봅니다 5
. 가와 3
동일한 윤곽 수준 5
에 있으므로 첫 번째 문자는 " "
입니다. 가와 20
같은 윤곽 수준에 있지 않기 때문에 5
두 번째 문자는 "|"
입니다.
이제 우리는을 봅니다 20
. 가와 6
같은 윤곽 수준에 있지 않기 때문에 20
첫 번째 문자는 "_"
입니다. 의 오른쪽에 요소가 없으므로 20
두 번째 문자는 " "
입니다.
이제 우리는을 봅니다 3
. 아래 3
에 요소가 없으므로 첫 번째 문자는 " "
입니다. 가와 6
동일한 윤곽 수준 3
에 있으므로 두 번째 문자는 " "
입니다.
이제 우리는을 봅니다 6
. 아래 6
에 요소가 없으므로 첫 번째 문자는 " "
입니다. 의 오른쪽에 요소가 없으므로 6
두 번째 문자는 " "
입니다.
이 두 문자 문자열을 기반으로 get을 대체합니다 [[" |","_ "],[" "," "]]
. 이것들을 합치면
|_
규칙
- 입력 행렬은 항상 직사각형이며 양의 정수로 구성됩니다.
- 후행 공백이나 줄 바꿈은 임의의 양 (0 포함) 일 수 있으며 어떤 식 으로든 일관성을 가질 필요는 없습니다.
- 동일한 결과를 생성하는 한 동일한 알고리즘을 따를 필요는 없습니다.
- 프로그램이나 함수는 줄 바꾸기로 구분 된 문자열, 문자열 목록 또는 이와 동등한 것을 출력 할 수 있습니다.
- 이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다.
테스트 사례
input
output
[[1,5,8,9],[3,11,13,8],[7,14,10,9],[4,8,7,6]]
_ _
| |
|_ _|
[[0,10,20,30,40,50,60,70,80,90],[0,0,10,10,20,20,30,30,40,40],[0,0,0,10,10,10,20,20,20,30],[0,0,0,0,10,10,10,10,20,20],[0,0,0,0,0,10,10,10,10,10],[0,0,0,0,0,0,10,10,10,10],[0,0,0,0,0,0,0,10,10,10],[0,0,0,0,0,0,0,0,10,10],[0,0,0,0,0,0,0,0,0,10],[0,0,0,0,0,0,0,0,0,0]]
|_|_|_|_|_|_|_|_|_
|_ |_ _|_ _|_ _
|_ |_ _ |_
|_ |_ _
|_
|_
|_
|_
|_
[[5,5,5,5,5,5,5,5,5,5,5],[5,10,10,10,10,10,10,10,10,10,5],[5,10,15,15,15,15,15,15,15,10,5],[5,10,15,20,20,20,20,20,15,10,5],[5,10,15,20,25,25,25,20,15,10,5],[5,10,15,20,25,30,25,20,15,10,5],[5,10,15,20,25,25,25,20,15,10,5],[5,10,15,20,20,20,20,20,15,10,5],[5,10,15,15,15,15,15,15,15,10,5],[5,10,10,10,10,10,10,10,10,10,5],[5,5,5,5,5,5,5,5,5,5,5]]
_ _ _ _ _ _ _ _ _
| |
| _ _ _ _ _ |
| | | |
| | _ | |
| | |_| | |
| | | |
| |_ _ _ _ _| |
| |
|_ _ _ _ _ _ _ _ _|
[[35,32,29,26,25,25,25,26,29,32,35],[32,28,25,22,20,20,20,22,25,28,32],[29,25,21,18,15,15,15,18,21,25,29],[26,22,18,14,11,10,11,14,18,22,26],[25,20,15,11,7,5,7,11,15,20,25],[25,20,15,10,5,0,5,10,15,20,25],[25,20,15,11,7,5,7,11,15,20,25],[26,22,18,14,11,10,11,14,18,22,26],[29,25,21,18,15,15,15,18,21,25,29],[32,28,25,22,20,20,20,22,25,28,32],[35,32,29,26,25,25,25,26,29,32,35]]
_| |_
_| _ _ _ _ _ |_
_| |_
| _ _ _ |
| | | |
| | | |
| |_ _ _| |
|_ _|
_ |_ _ _ _ _| _
|_ _|
| |