이 도전에서, 당신은 당신의 땅이 얼마나 큰지를 계산할 것입니다.
당신이 지은 벽이 주어지면, 땅의 크기를 계산하는 프로그램이나 함수를 작성하십시오. "위", "아래", "왼쪽"및 "오른쪽"의 4 가지 방향을 나타내는 4 개의 고유 한 문자 세트를 포함하는 비어 있지 않은 입력 문자열 ^ v < >
이 제공됩니다 (이 과제에서 사용 하겠습니다). 180도 회전 ( <>
또는 ^v
)을 할 수는 없지만 벽을 넘을 수 있습니다.
당신이 땅을 "잡는"방법은 당신의 벽으로 둘러싸는 것입니다. 벽 자체는 또한 당신의 땅의 일부로 간주됩니다. 몇 가지 예가 더 명확해질 것입니다. o
벽으로 둘러 쌓인 땅 x
, 벽 자체 및 벽 S
의 시작점에 대해 벽을 만드는 방법을 설명 하기 위해 사용하겠습니다 . 출력은 땅의 전체 크기 (수해야 o
, x
및 S
테스트 케이스 아래에서).
Input: >>>>
Land: Sxxxx
Output: 5
Input: <<<^^^>>>vv
Land:
xxxx
xoox
xoox
xxxS
Output: 16
Input: <<<^^^>>>v
Land:
xxxx
x x
x
xxxS
Output: 11
Input: <
Land: xS
Output: 2
Input: >>>>>>vvvvvvvvv<<<<<^^^^>>>>>>>>vvvvvvvvvv<<<<<<<<<<<<<<<^^^^^^^^^>>>vvvvvv<<<<<
Land:
Sxxxxxx
x
x
x
x
xxxxxxxxx
xxxx xoooox x
xoox xoooox x
xoox xoooox x
xoox xxxxxx x
xoox x
xoox x
xxxxxx x
x x
x x
xxxxxxxxxxxxxxxx
Output: 101
Input: >>vvvv>>^^<<<<^
Land:
Sxx
xox
xxxxx
xox
xxx
Output: 17
Input: <<^^^>>>vv
Land:
xxxx
x x
x x
xxS
Output: 11 <- Note, diagonal edges do not close the "loop"
설명 :
- 벽을 그릴 필요는 없습니다. 출력은 정수 여야합니다.
- 입력 형식은 선택 사항입니다.
<>^v
, 숫자 목록,,(1, -1, i, -i)
문자 목록ABCD
등 으로 문자열을 사용할 수 있습니다 .
이것은 코드 골프 이므로 각 언어에서 가장 짧은 코드 가 승리합니다. "일반적인"언어로도 설명이 중요하다는 것을 기억하십시오!