Defenestration adalah tindakan membuang seseorang atau sesuatu ke luar jendela.
- Wikipedia
Memasukkan
Input akan terdiri dari dua bagian:
Denah lantai dan seseorang di dalam rumah / bangunan.
v><^
mewakili seseorang, menunjuk ke arah yang ditandai dengan panah. Input akan berisi tepat satu orang.-
dan|
mewakili dinding, dan#
mewakili sebuah jendela.
Bagian input ini dapat diambil sebagai string tunggal, atau array / daftar / dll. garis. Tidak akan pernah ada spasi tambahan atau spasi, dan input akan selalu berbentuk persegi panjang.
Contoh:
-----###--- | | | ^ | -----------
Integer ≥ 1 yang menandakan seberapa jauh (dalam karakter) orang tersebut bepergian.
Keluaran
Outputnya seharusnya
1
jika orang tersebut berakhir "dalam" jendela (yaitu setelah bergerak ke depan jarak yang ditentukan dalam input, orang tersebut di atas a#
).2
jika orang tersebut telah didefestrasi (bersentuhan dengan a#
dan kemudian melanjutkan lebih jauh).3
jika orang tersebut menabrak dinding (bersentuhan dengan-
atau|
. Begitu menabrak dinding, orang itu berhenti dan tidak melanjutkan melewatinya).0
jika tidak ada di atas yang benar (dan semua yang dilakukan orang adalah melakukan perjalanan melalui ruang kosong).
Asumsi
Semua hal berikut ini dapat dianggap benar:
Orang tersebut tidak akan pernah melakukan perjalanan "di luar batas" dari area input.
Setelah defenestrasi, orang tersebut tidak akan pernah melakukan kontak dengan orang lain
#
atau-
/|
(jadi Anda tidak perlu khawatir jika2
dan1
atau3
keduanya benar).
Uji kasus
Untuk "denah lantai" berikut:
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
Untuk denah lantai ini:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
Untuk denah lantai ini:
||####|#|#|##|<
In Out
any 3
Kasus ujian akhir:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
Has someone been for-sparta'd?
Jawaban:
JavaScript (ES6),
147146 byteDisimpan 1 byte berkat @NinjaBearMonkey !
Penjelasan
Mengambil denah lantai sebagai string dan jumlah gerakan. Mengembalikan angka.
Uji
Tampilkan cuplikan kode
sumber