Fresh Graduate? Pelajari Cara Menyelesaikan Soal Two Sum dalam Coding Interview dengan Javascript

Mempersiapkan diri untuk wawancara coding bukanlah hal yang mudah. Salah satu soal yang sering muncul dalam wawancara coding adalah Two Sum. Soal ini dapat ditemukan dalam berbagai tingkat kesulitan, mulai dari level pemula hingga level expert. Namun, meskipun soal ini cukup umum dan terdengar sederhana, banyak kandidat yang kesulitan dalam menyelesaikannya.

Two Sum adalah sebuah problem yang meminta kita untuk menemukan dua elemen dari sebuah array yang jika dijumlahkan akan sama dengan target yang diberikan. Misalnya, jika kita memiliki array [3, 5, 7, 11] dan target 8, kita harus menemukan pasangan elemen (3, 5) karena 3 + 5 = 8. Solusi yang diberikan harus menunjukkan indeks dari elemen tersebut dalam array asli. Pada contoh diatas, solusi yang benar adalah [0,1].

Untuk menyelesaikan Two Sum, kita dapat menggunakan pendekatan brute force dengan mengecek setiap pasangan elemen dalam array dan mengecek apakah jika dijumlahkan akan sama dengan target. Namun, metode ini akan sangat lambat untuk array yang besar. Salah satu metode yang lebih efisien adalah dengan menggunakan hash map.

Kita bisa menyimpan setiap elemen dalam array ke dalam hash map dengan key sebagai elemen dan value sebagai indeks dari elemen tersebut. Kemudian kita dapat mengecek apakah target - elemen saat ini terdapat dalam hash map. Jika terdapat, maka kita dapat mengembalikan indeks dari elemen saat ini dan elemen yang ditemukan dalam hash map.

Contoh implementasi Two Sum menggunakan javascript:

const twoSum = (nums, target) => {

  let map = {};

  for (let i = 0; i < nums.length; i++) {

    let complement = target - nums[i];

    if (map[complement] !== undefined) {

      return [map[complement], i];

    }

    map[nums[i]] = i;

  }

};

console.log(twoSum([3, 5, 7, 11], 8)); // output: [0, 1]


Code di atas adalah sebuah function yang diberi nama "twoSum" yang digunakan untuk mencari pasangan angka dalam sebuah array yang jika dijumlahkan akan sama dengan target yang ditentukan.

Pada baris pertama, function ini menerima 2 parameter, yaitu "nums" yang merupakan array angka dan "target" yang merupakan angka yang ditentukan sebagai jumlah pasangan angka yang dicari.

Setelah itu, kita membuat sebuah variable baru yang bernama "map" yang merupakan sebuah object kosong.

Pada baris ke-4, kita melakukan looping dengan "for" yang akan berjalan sebanyak panjang dari array "nums" yang diterima sebagai parameter.

Pada baris ke-5, kita membuat sebuah variable baru yang bernama "complement" yang merupakan hasil dari pengurangan antara "target" dengan "nums[i]" yang merupakan nilai dari setiap elemen array pada saat looping.

Pada baris ke-6, kita mengecek apakah nilai dari "map" pada key yang sama dengan "complement" sudah ada atau belum. Jika sudah ada, maka kita akan me-return array yang berisi "map[complement]" dan "i".

Pada baris ke-8, kita menambahkan key baru pada "map" dengan key yang sama dengan nilai dari "nums[i]" dan value yang sama dengan "i".

Pada baris terakhir, kita mencetak hasil dari function "twoSum" dengan mengirimkan parameter array [3, 5, 7, 11] dan target 8. Output yang diharapkan adalah [0, 1] karena angka 3 dan 5 dalam array tersebut jika dijumlahkan akan menghasilkan 8.

Secara keseluruhan, soal Two Sum dalam coding interview dapat diselesaikan dengan menggunakan metode yang efisien menggunakan javascript. Dengan memahami cara kerja hash map dan looping, serta mengetahui cara mencari pasangan angka yang memenuhi target, fresh graduate dapat menyelesaikan soal ini dengan mudah dan efektif. Jangan ragu untuk terus belajar dan mengejar ilmu, karena kesuksesan dalam karir sebagai seorang developer ditentukan oleh komitmen dan ketekunan dalam belajar. Semangat terus belajar dan mengejar impian!