Soal HackerRank 2

Mini-Max Sum

Neraka ngoding
Neraka Ngoding
3 min readMar 27, 2020

--

Okayyy! kita sudah belajar banyak tentang Golang, sekarang kita praktikan pengetahuan kita dengan mengerjakan soal-soal https://www.hackerrank.com. Soalnya seperti dibawah, pada bisa bahasa inggris la yah bukan hanya buat status doang pake bahasa inggris.

“Mini-Max Sum

Given five positive integers, find the minimum and maximum values that can be calculated by summing exactly four of the five integers. Then print the respective minimum and maximum values as a single line of two space-separated long integers.

For example, arr[]={1,3,5,7,9}. Our minimum sum is 1+3+5+7 = 16 and our maximum sum is 3+5+7+9 = 24 . We would print

16 24

Function Description Complete the miniMaxSum function in the editor below. It should print two space-separated integers on one line: the minimum sum and the maximum sum of 4 of 5 elements. miniMaxSum has the following parameter(s):

arr: an array of integers

Input Format

A single line of five space-separated integers

Constraints

1≤arr[i]≤10⁹

Output Format

Print two space-separated long integers denoting the respective minimum and maximum values that canbe calculated by summing exactly four of the five integers. (The output can be greater than a 32 bit integer.)

Sample Input

1 2 3 4 5

Sample Output

10 14

Explanation

Our initial numbers are 1 ,2 ,3 ,4 , and 5. We can calculate the following sums using four of the five integers:

  1. If we sum everything except 1, our sum is 2 + 3 + 4+ 5 = 14 .
  2. If we sum everything except 2, our sum is 1 + 3 +4 + 5 = 13 .
  3. If we sum everything except 3, our sum is 1+ 2+ 4 + 5 = 12.
  4. If we sum everything except 4, our sum is 1+2+3+ 5 = 11.
  5. If we sum everything except 5, our sum is 1+2+3+4 = 10.

Hints: Beware of integer overflow! Use 64-bit Integer.”

Intinya soalnya diatas adalah

  1. Kita punya suatu fungsi dengan parameter Slice dengan tipe data int32.
  2. Carilah nilai minimum dari jumlah panjang slice dikurangi satu anggotanya . Misal Slice 1,2,3,4,5 maka carilah nilai jumlah minimum dari 4 anggotanya = 10.
  3. Carilah nilai maximum dari jumlah panjang slice dikurangi satu anggotanya . Misal Slice 1,2,3,4,5 maka carilah nilai jumlah maximum dari 4 anggotanya =14.

Jawaban saya adalah fungsi dibawah.

Program 1

Penjelasan program 1:

  • Baris 2 dan 28 deklarasi fungsi dengan parameter Slice dengan tipe data int32.
  • Baris 3 deklarasi variabel sum dengan tipe data int64 untuk menjumlahkan seluruh anggotanya.
  • Baris 4 dan 6 looping dari i=0 sampai i = len(n) -1
  • Baris 7 dan 8 deklarasi variabel min dan max dengan tipe data int64.
  • Baris 9 dan 16 looping dari i=0 sampai i = len(n) -1.
  • Baris 10 sampai 12 logika nya seperti ini jika sum-n[i] lebih kecil dari min atau min sama dengan 0 maka update variabel min menjadi sum-n[i].
  • Baris 10 sampai 12 logika nya seperti ini jika sum-n[i] lebih beasar dari max atau max sama dengan 0 maka update variabel max menjadi sum-n[i].
  • Dari logika diatas akan didapat min dan max.
  • Baris 17 print nilai min dan max.

Hasil simulasi program 1 :

n adalah Slice dengan anggota 1,2,3,4,5.

  1. Jumlah 1 + 2 + 3 + 4 + 5 = 15 masuk ke variabel sum.
  2. Loop i=0.
  • sum-n[0]= 15–1 = 14.
  • 14 < 0 => false , tetapi min masih 0 maka min diisi 14.
  • 14–1> 0 => true , maka max diisi 14.
  • min = 0.
  • max = 0.

3. Loop i=1.

  • sum-n[1]= 15–2 = 13.
  • 13 < 14=> true, maka min diisi 13.
  • 13 > 14=> false, maka max tidak berubah.
  • min = 13
  • max = 14

4. Loop i = 2

  • sum-n[2]= 15–3 = 12.
  • 12 < 14=> true, maka min diisii 12.
  • 12 > 14=> false, maka max tidak berubah.
  • min = 12
  • max = 14

5. Loop i = 3

  • sum-n[3]= 15–4 = 11.
  • 11 < 14=> true, maka min diisi 11.
  • 11 > 14=> false, maka max tidak berubah.
  • min = 13
  • max = 14

6. Loop i = 4

  • sum-n[4]= 15–5 = 10.
  • 10 < 14=> true, maka min diisi 10.
  • 10 > 14=> false, maka max tidak berubah.
  • min = 10
  • max = 14

Jawaban : 10 14

Okaayyy mantap lancar! kalau kawan-kawan ingin masuk Google atau perusahaan start-up lokal seperti Gojek, Bukalapak, dll biasanya ditest beginian. Sekian dulu sampai jumpa diblog berikutnya.

--

--

Neraka ngoding
Neraka Ngoding

Coder terbaik sebatununggal-bandung, west java, indonesia belum terkalahkan selama 15 tahun. “Coder adalah Identitas bukan profesi”