Dalam tantangan ini, Anda akan menghitung seberapa hebat tanah Anda.
Tulis program atau fungsi yang menghitung ukuran tanah Anda, mengingat tembok yang telah Anda bangun. Anda diberi string input non-kosong yang berisi sekumpulan 4 karakter berbeda pilihan Anda yang mewakili empat arah "naik", "turun", "kiri" dan "kanan" (saya akan gunakan ^ v < >
dalam tantangan ini). Tidak mungkin untuk berbelok 180 derajat ( <>
atau ^v
), tetapi Anda dapat melewati dinding Anda.
Cara Anda "menangkap" tanah adalah dengan melingkari tanah itu dengan dinding Anda. Tembok itu sendiri juga dianggap bagian dari tanahmu. Beberapa contoh akan membuatnya lebih jelas. Saya akan menggunakan o
untuk tanah yang telah dikelilingi oleh tembok, x
untuk tembok itu sendiri, dan S
untuk titik awal dinding, hanya untuk menggambarkan bagaimana tembok itu dibangun. Outputnya haruslah ukuran total tanah Anda (jumlah o
, x
dan S
dalam kasus uji di bawah).
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"
Klarifikasi:
- Anda tidak perlu menggambar dinding, output seharusnya hanya berupa bilangan bulat
- Format input adalah opsional. Anda dapat mengambil string dengan
<>^v
, daftar angka,,(1, -1, i, -i)
daftar karakterABCD
dll.
Ini adalah kode-golf sehingga kode terpendek dalam setiap bahasa menang. Ingat, penjelasan itu penting, bahkan dalam bahasa "biasa"!