SOFTWARE ENGINEERING

Birthday Chocolate di HackerRank Susah?! Ini Dia Solusinya (Ruby)

hello | 25 OCT 2019

Halo kamu bisa banget gabung di platform bisnis pinterusaha.ai untuk mempunyai sistem inventori dan pembukuan gratis. Selamat membaca!



Lily punya cokelat batang yang mau dia bagi ke Ron untuk ulang tahunnya. Setiap kotak-kotaknya ada angka (integer) yang tertera. Lily memutuskan untuk membagi tiap kotaknya yang panjangnya sesuai dengan bulan lahir Ron dan menjumlahkan angka-angka di tiap kotaknya sesuai dengan tanggal lahir Ron. Kita harus tentukan berapa banyak cara Lily bisa membagi coklatnya.

Meninjau coklat batang sebagai sebuah array di tiap kotak-kotaknya, s=[2,2,1,3,2]. Lily ingin mencari segmen-segmen/kotak-kotak dengan menjumlahkannya sesuai tanggal lahir Ron, d=4 dengan panjang kotaknya disamakan dengan bulan lahirnya, m=2. Disini, ada dua segmen yang sesuai dengan kriteria Lily: [2,2] dan [1,3].

Deskripsi Function

Lengkapi function birthday di editor bawah. Return-nya harus berupa integer yang menunjukkan angka dari cara Lily bisa membagi coklat batangnya.

Birthday memiliki parameter sebagai berikut:

  • s: sebuah array integer, angka-angka yang ada pada setiap kotak di coklatnya
  • d: sebuah integer,tanggal lahir Ron
  • m: sebuah integer, bulan lahir Ron

Format Input

  • Baris pertama mengandung integer n, jumlah kotak-kotak di coklat batangnya.
  • Baris kedua mengandung n integer s[i] yang terpisah-pisah, angka-angka yang ada di tiap kotak pada coklat batang dimana 0 <= i < n.
  • Baris ketiga mengandung 2 ruang integer-integer yang terpisahkan, d dan m, tanggal lahir dan bulan lahir Ron

Batasan-Batasan

Format Output

  • Cetak sebuah integer yang menunjukkan total angka dari cara-cara LIly bisa membagi coklat batangnya ke Ron.

Sampel Input 0

Keterangan: 

  • Angka 5 merupakan n=5, jumlah kotak-kotak(integer) pada coklat batang.
  • Angka 1 2 1 3 2 merupakan s[i] = s[1,2,1,3,2], angka-angka yang ada pada kotak-kotak di coklat batang.
  • Angka 3 2 merupakan d=3 dan m=2.

Sampel Output 0

Keterangan:

  • Angka 2 merupakan total langkah yang dapat Lily lakukan untuk membagikan coklat ke Ron sesuai tanggal lahir dan bulan lahirnya

Penjelasan 0

Lily ingin memberi Ron m=2 yang dijumlahkan menjadi d=3. Dua segmen-segmen berikut sesuai dengan kriteria:

Keterangan:

  • d=3, jumlah dari angka-angka yang tertera pada kotak-kotak yang dimana banyaknya kotak yang diambil menyesuaikan dengan integer pada m, yaitu m=2

Sampel Input 1

Sampel Output 1

Penjelasan 1

Lily hanya ingin memberikan Ron kotak-kotak m=2 yang berurutan yang mana integernya berjumlah d=3. Disini tidak ada bagian-bagian yang mungkin bisa memenuhi batasan-batasan ini: 

Jadi, cetak 0 sebagai jawabannya.

Sampel Input 2

Sampel Output 2

Penjelasan 2

Lily hanya ingin memberikan Ron kotak m=1 dengan nilai integernya d=4. Karena hanya ada satu kotak pada coklat batangnya yang memenuhi batasan ini, jadi, kita print 1 sebagai jawabannya.


Editor:

Keterangan: 

  • each_cons(m), Iterasi blok yang diberikan untuk setiap array s yang kita punya secara berturut-turut. Disini kita memiliki [1,2], [2,1],[1,3],[3,2].
  • reduce(0).
  • chunk.sum() == d ? 1 : 0 , yang berarti kita akan memeriksa jika kita menjumlahkan chunk hasilnya sama dengan d maka bernilai 1, jika tidak maka 0.
  • Count + , menjumlahkan hasil chunk yang sudah di sum dan akan menghasilkan nilai untuk output.


HackerRank.com

By: Siti Nurjannah (ig: @sitinurjaannah)



Join pinterusaha.ai sekarang.

Wellcode.io Team

Leading high-tech Indonesia Startup Digital - which serves the community with revolutionary products, system development, and information technology infrastructure

You may also like

BUSINESS

Peran manager dalam organisasi “Agile” – The Chapter, Tribe, and Squad Leader

hello | 17 MAY 2020

NEWS

Wellcode.io – SAIC Capital; Melihat Lanskap Perkembangan Teknologi di Indonesia

hello | 17 MAY 2020

NEWS

Wellcode.io – Twist Code; Mengembangkan Teknologi untuk Meningkatkan Daya Saing Sektor Industri

hello | 17 MAY 2020