Pedometer sederhana dapat dimodelkan dengan pendulum dengan dua sakelar di sisi yang berlawanan — satu di x = 0 dan satu di x = l . Ketika pendulum menghubungi tombol jauh, ambulator dapat diasumsikan telah mengambil setengah langkah. Saat kontak dengan sakelar dekat, langkahnya selesai.
Diberikan daftar bilangan bulat yang mewakili posisi bandul, tentukan jumlah langkah penuh yang dicatat pada pedometer.
Memasukkan
Integer l > 0, panjang trek.
Daftar bilangan bulat yang mewakili posisi pendulum pedometer setiap kali.
Keluaran
Jumlah langkah penuh yang diukur. Sebuah langkah diambil ketika pendulum menghubungi saklar jauh (x> = l) dan kemudian sakelar dekat (x <= 0).
Uji kasus
8, [8, 3, 0, 1, 0, 2, 2, 9, 4, 7]
1
Pendulum segera melakukan kontak dengan sakelar jauh di x = 8 pada t = 0. Kemudian menyentuh saklar dekat pada t = 2 dan t = 4, menyelesaikan satu langkah. Setelah itu, ia menyentuh lagi saklar jauh pada x = 9 pada t = 8, tetapi itu tidak pernah menyentuh saklar dekat lagi.
1, [1, 5, -1, -4, -1, 1, -2, 8, 0, -4]
3
15, [10, -7, -13, 19, 0, 22, 8, 9, -6, 21, -14, 12, -5, -12, 5, -3, 5, -15, 0, 2, 11, -11, 12, 5, 16, 14, 27, -5, 13, 0, -7, -2, 11, -8, 27, 15, -10, -10, 4, 21, 29, 21, 2, 5, -7, 15, -7, -14, 13, 27]
7
7, [5, 4, 0]
0
7, [5, 8, 6, 1, 2]
0
sumber
7, [5, 4, 0]
? Apakah itu 0 atau 1? Yaitu - apakah Anda menganggap bahwa ayunan selalu "panjang penuh"? Atau7, [5, 8, 6, 1, 2]
? Apakah itu 0 atau 1?8, [0 8 0 8]
harus memberi1
, bukan2
. Apakah saya benar?Jawaban:
CJam,
2724 byteFormat input adalah daftar posisi pendulum diikuti oleh
l
pada satu baris.Uji di sini.
Penjelasan
sumber
MATL , 22 byte
Ini menggunakan versi saat ini (14.0.0) dari bahasa / kompiler.
Input dalam urutan dan format yang sama dengan tantangan, dipisahkan oleh baris baru.
Cobalah online!
Penjelasan
sumber
Javascript ES6 57 byte
Terima kasih @NotThatCharles untuk -4
sumber
/10/
?Perl, 28 byte
Termasuk +1 untuk
-p
Jalankan dengan input sebagai satu garis panjang bilangan bulat yang dipisahkan ruang pada STDIN, angka pertama adalah panjang:
steps.pl
:Menggunakan operator perl flip-flop dan menghitung berapa kali ia kembali ke false
sumber
Pyth, 18 byte
Suite uji
Penjelasan:
sumber
Ruby, 42
r
dimulai sebagaifalse
. Kami beralihr
di setiap ujung trek, dan menambahkannya ke hitungan kami. Kemudian, belah dua hitungan (pembulatan ke bawah) untuk mendapatkan jumlah langkah.sumber
Retina, 34
Cobalah online! atau coba dengan input desimal .
Mengambil input dalam unary, bilangan negatif unary diperlakukan sebagai
-111...
dan nol adalah string kosong. Menghitung berapa kali angka pertama muncul diikuti dengan nol. Menggunakan grup atom untuk menjamin bahwa kecocokannya minimal (sayangnya grup atom tidak dapat ditangkap sehingga harus dibungkus dengan grup lain ...).sumber
Python 3, 82
Disimpan 2 byte berkat DSM.
Belum super golf.
Kasus uji:
sumber
Clojure, 64 byte
Nilai Maps kurang dari atau sama dengan panjang nol hingga
0
, lebih besar atau sama dengan1
dan lainnya untuk string kosong""
. Ini kemudian digabungkan ke string dan kemunculan"10"
dihitung.sumber
APL (Dyalog Unicode) , 17 byte SBCS
Juga dikenal sebagai "berapa banyak yang dapat saya penyalahgunaan iota-underbar?"
Cobalah online!
sumber